def val(self) -> int: """ bit 들로 이루어진 값을 int 값으로 읽을 수 있도록 만드는 함수 음수 값이 없으므로 모두 양수 읽는 것처럼 읽 :return: """ return BitOperation.binary_to_decimal(self.bits)
def val(self) -> int: """ bit 들로 이루어진 값을 int 값으로 읽을 수 있도록 만드는 함수 음수 확인은 signed bit를 통해 확인 테스트 및 출력을 위해 사용하는 함수 :return: int 값으로 리턴 """ res = BitOperation.binary_to_decimal(self.bits) if self.sign: return -res return res
def shift_fraction(a_exp: List[Bit], b_exp: List[Bit], b_frac: List[Bit]): """ float의 exponent 값 차이만큼 shift 한 fraction 값 연산 right-shift 연산 할 때 생략된 값이 있을 때 1을 더함 :param a_exp: 비교하는 exponent :param b_exp: 비교하는 exponent :param b_frac: shift 연산할 fraction :return: shift 연산 된 fraction """ diff, _ = Arithmetic.raw_sub_bits(a_exp, b_exp) diff = BitOperation.binary_to_decimal(diff) b_fraction = BitOperation.raw_rshift_bits(b_frac, diff) if not BitOperation.is_empty(b_frac[:diff]): b_fraction, _ = Arithmetic.add_bits(b_fraction, BitOperation.num_map['1'], len(b_fraction)) return b_fraction return b_fraction