バイナリ表現における整数の分析


  1. 符号なし整数のバイナリ表現: 符号なし整数は正の整数であり、通常、バイナリ表現の最上位ビットは符号を示すビットではありません。以下は、10進数の符号なし整数をバイナリに変換する方法のコード例です。

    def decimal_to_binary_unsigned(n):
       return bin(n)[2:]
    # 使用例
    decimal_number = 42
    binary_number = decimal_to_binary_unsigned(decimal_number)
    print(binary_number)  # 結果: '101010'
  2. 符号付き整数のバイナリ表現: 符号付き整数は正または負の整数であり、バイナリ表現の最上位ビットは符号を示すビットです。以下は、10進数の符号付き整数をバイナリに変換する方法のコード例です。

    def decimal_to_binary_signed(n):
       if n < 0:
           binary = bin(n & 0b11111111_11111111_11111111_11111111)[2:]
       else:
           binary = bin(n)[2:]
       return binary.zfill(32)  # 32ビットの固定長表現としてゼロ埋め
    # 使用例
    decimal_number = -42
    binary_number = decimal_to_binary_signed(decimal_number)
    print(binary_number)  # 結果: '11111111111111111111111111010110'
  3. バイナリから10進数への変換: バイナリ表現から10進数に変換する方法もあります。以下は、バイナリ文字列を10進数に変換する方法のコード例です。

    def binary_to_decimal(binary):
       return int(binary, 2)
    # 使用例
    binary_number = '101010'
    decimal_number = binary_to_decimal(binary_number)
    print(decimal_number)  # 結果: 42