1

我需要一些帮助转换:

  • 二进制 - 十六进制
  • 二进制十进制
  • 十六进制 - 十进制

反之亦然,使用 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,然后转换为十六进制

>>> 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 楼

于 2012-06-14T08:22:40.833 回答