From fdae3172d9a76d8c675d7acdbe33ace31af7109a Mon Sep 17 00:00:00 2001 From: Johannes Kung <johku144@student.liu.se> Date: Thu, 1 Aug 2024 17:09:26 +0200 Subject: [PATCH] Implemented more formats --- src/simudator/gui/formatting.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/simudator/gui/formatting.py b/src/simudator/gui/formatting.py index ed57c8f..85ce411 100644 --- a/src/simudator/gui/formatting.py +++ b/src/simudator/gui/formatting.py @@ -82,17 +82,17 @@ def format_to_str(format_info: FormatInfo, value: Any) -> str: """ match format_info.selected_format: case Format.Int: - pass + return str(value) case Format.Str: - pass + return str(value) case Format.Bin: return f"{value:0{format_info.kwargs['bit_length']}b}" case Format.Hex: return f"{value:0{math.ceil(format_info.kwargs['bit_length']/4)}x}" case Format.Decimal: - pass + return str(value) case Format.DecimalSigned: - pass + return str(value - 2 ** format_info.kwargs['bit_length']) def parse_str(format_info: FormatInfo, value: str) -> Any: @@ -114,5 +114,13 @@ def parse_str(format_info: FormatInfo, value: str) -> Any: match format_info.selected_format: case Format.Int: return int(value) + case Format.Bin: + return int(value, base=2) case Format.Hex: return int(value, base=16) + case Format.Decimal: + return int(value) + case Format.DecimalSigned: + # Turn negative numbers into the correct unsigned value + # e.g. bit length 3: -1 (0b111 in 2's complement) => 7 + return int(value) % 2 ** format_info.kwargs['bit_length'] -- GitLab