我需要一些帮助转换:
- 二进制 - 十六进制
- 二进制十进制
- 十六进制 - 十进制
反之亦然,使用 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,然后转换为十六进制
>>> hex(int('010110', 2))
>>> '0x16'
>>> hex(int('0000010010001101', 2))
'0x48d'
无功能:
101110101101 例如,要将 101110101101 转换为十六进制,请将其分成四部分: 1011 1010 1101 BAD
现在将每个组映射到其摩尔斯电码..(如下所示)
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 一个
1011乙
1100摄氏度
1101 D
1110 东
1111 楼