変換の助けが必要です:
- 2 進数 - 16 進数
- 2 進 10 進数
- 16 進数 - 10 進数
関数を使用せずに Python を使用すると、その逆も同様です。binascii
私は Python を少し知っており、配列についても少し知っています。これについて頭を悩ませることはできません。
まあ、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
関数なしで更新:
>>> for c,i in enumerate(st):
... a+=i
... if (c+1)%4==0:
... print MORSECODEMAP[a]
... a=''
文字列を基数 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