From 8f3a48300361ed5d659c1afc60dc196ba533eadb Mon Sep 17 00:00:00 2001 From: sedaozkaya <155262567+sedaozkaya@users.noreply.github.com> Date: Sat, 20 Dec 2025 20:52:58 +0300 Subject: [PATCH] Add binary representation API for float numbers Implement a Flask API to convert a float to binary representation. --- Week05/bra_sedasenguozkaya.py | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Week05/bra_sedasenguozkaya.py diff --git a/Week05/bra_sedasenguozkaya.py b/Week05/bra_sedasenguozkaya.py new file mode 100644 index 0000000..b9fcd76 --- /dev/null +++ b/Week05/bra_sedasenguozkaya.py @@ -0,0 +1,93 @@ +from flask import Flask, request, jsonify + +app = Flask(__name__) + + +class BinaryRepresentation: + def __init__(self, number): + if type(number) is not float: + raise TypeError("Input must be a float") + self.number = number + + def integer2binary(self): + integer = int(self.number) + + if integer == 0: + return "0" + + bits = "" + while integer > 0: + bits = str(integer % 2) + bits + integer //= 2 + return bits + + def decimal2binary(self): + decimal = self.number - int(self.number) + + if decimal == 0: + return "" + + bits = "" + for _ in range(10): + decimal *= 2 + bit = int(decimal) + bits += str(bit) + decimal -= bit + + if decimal == 0: + break + + return bits + + def __str__(self): + integer_part = self.integer2binary() + decimal_part = self.decimal2binary() + + + + + + if decimal_part == "": + return f"{integer_part}." + + return f"{integer_part}.{decimal_part}" + + +@app.route("/", methods=["GET"]) +def binary_api(): + if "number" not in request.args: + return ( + jsonify( + {"error": "Please send a GET request to /?number="} + ), + 400, + ) + + try: + number = float(request.args.get("number")) + except ValueError: + return ( + jsonify( + { + "error": "Please send a GET request to /?number= with a valid number" + } + ), + 400, + ) + + try: + binary = BinaryRepresentation(number) + return jsonify({"binary_representation": str(binary)}) + except TypeError: + return ( + jsonify( + { + "error": "Please send a GET request to /?number= with a valid number" + } + ), + 400, + ) + + +if __name__ == "__main__": + app.run(debug=True)