1

変換の助けが必要です:

  • 2 進数 - 16 進数
  • 2 進 10 進数
  • 16 進数 - 10 進数

関数を使用せずに Python を使用すると、その逆も同様です。binascii

私は Python を少し知っており、配列についても少し知っています。これについて頭を悩ませることはできません。

4

3 に答える 3

6

まあ、bin、hex、int などの組み込みのキャスト関数がありますが、これが「関数の使用なし」にどのように影響するかはわかりません。次のコードでそれらを確認できます。

# Convert decimal to binary
>>> bin(10)
'0b1010'
>>> bin(10)[2:]
'1010'
>>> bin(10)[2:].zfill(8)
'00001010'
# Convert binary to decimal
>>> int('00001010',2)
10
# Convert decimal to hexadecimal
>>> hex(123)
'0x7b'
>>> hex(123)[2:]
'7b'
>>> hex(123)[2:].zfill(8)
'0000007b'
# Convert hexadecimal to decimal
>>> int('0000007b', 16)
123
# Convert binary to hexadecimal
>>> hex(int('1010', 2))
'0xa'
# Convert hexadecimal to binary
>>> bin(int('A', 16))
'0b1010'

編集:

サンプルアルゴリズム..

def dec2bin(num):
    if num == 0: return '0'
    bin_str = ''
    while num > 0:
        bin_str = str(num % 2) + bin_str
        num = num / 2
    return bin_str
于 2012-06-14T08:29:36.587 に答える
0

関数なしで更新:

>>> for c,i in enumerate(st):
...        a+=i
...        if (c+1)%4==0:
...         print MORSECODEMAP[a]
...         a=''
于 2012-06-14T09:04:20.470 に答える
-1

文字列を基数 2 の int に変換してから 16 進数に変換します

>>> hex(int('010110', 2))
>>> '0x16'
>>> hex(int('0000010010001101', 2))
'0x48d'

関数なし:

101110101101 たとえば、101110101101 を 16 進数に変換するには、4 つに分割し
ます。

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010A

1011B

1100℃

1101D

1110E

1111F

于 2012-06-14T08:22:40.833 に答える