二进制、十进制、十六进制之间转换

  1. 十进制转二进制,快捷算法除二取余一直除到0结束。例如45,45/2=22余1,22/2=11余0,11/2=5余1,5/2=2余1,2/2=1余0,1/2除不开余1,所以45的二进制为101101
  2. 十六进制数码为:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15),十进制转16进制,快捷算法除十六取余,通过余数对照十六进制数值。例如30,30/16=1余下14,对应的是E。所以30=1E
  3. 十六进制转十进制:例如1E = 1*(16^1) + 14 = 30
  4. 二进制转十进制:例如101101 = 1*2的5次方+1*2的3次方+1*2的2次方+1*2的0次方=45
# 二进制 to 十进制
def bin2dec(string_num):
    return str(int(string_num, 2))


# 十六进制 to 十进制
def hex2dec(string_num):
    return str(int(string_num.upper(), 16))


# 十进制 to 二进制
def dec2bin(string_num):
    num = int(string_num)
    if num == 0:
        return num
    return bin(num)


# 十进制 to 十六进制
def dec2hex(string_num):
    num = int(string_num)
    if num == 0:
        return num
    return hex(num)


# 十六进制 to 二进制
def hex2bin(string_num):
    return dec2bin(hex2dec(string_num.upper()))


# 二进制 to 十六进制
def bin2hex(string_num):
    return dec2hex(bin2dec(string_num))

猜你喜欢

转载自blog.csdn.net/qq_42407917/article/details/108341895
今日推荐