二进制、八进制、十进制、十六进制这个也没有人不知道吗? 不会吧,不会吧?
复制,转换原理,知道原理后,用百通的a进制转换为b进制,分两个阶段先从a进制转换为10进制,用位权展开相加。从左往右 为 n-0位
二进制位权:第n个位权: 2n
八进制位置权: n位位置权: 8n
十进制位置权: n位位置权: 10n
十六进制定位:第n位定位: 16n
例如,从二进制1010变换为十进制
num=1x23 0x22 1x21 0*20=10
然后十进制转向b进制的核心思想:去基取余法
例如,从十进制到十六进制:
十进制108
108/16=6 121216结束
0x6C直接代码: defa_to_b(a,b, num ) 3360 " " : parama :a进制int :param b:b进制int :param num:没有前缀a进制原始数据str :return: 表示没有后缀b进制的数据str " " defa的en(a, num ) :len1=len(num ) ans=0forIinrange ) len1) :ifnum(I )='0'andnum(I )='9'3360ans=ans ) ) ) (len1-I-1 )返回ans def ten _ to _ b (b ) ) ) ) 65=0: temp=num % BIF temp=10:堆栈1.append bstack1.reverse(return'.join ) stack1) num=a_to_ten(a ) a,num ) num=ten_to_b(b ) b,num ) returururen
二进制八进制十进制十六进制过客(int(n,8 ) )的过客(int ) n,10 ) )的过客(int ) n,16 ) )的八进制oct (int ) n,2 ) ) oct (int ) ) num ) 3360 " " : parama :表示a进制int :param b:表示b进制int :param num:表示无前缀a进制原始数据str :return:表示, 表示无后缀的b进制数据str " " IFA的360i FB==2: returnnumelifb==8: return oct (int (num,2 ) ) elifb==103: return 2 ) elifb==16333330 2) elifa==8: IFB==8: returnnumelifb==2: return充实的旅行者(int(num,8 ) ) elifb==10: 8 ) elifb==16: return hex (int (num,8 ) ) elifa==10: IFB==10: returnnumelifb==23: return的充实旅人(IFB ) 10 ) ) ElifB==16:returnhex ) int ) num,10 ) elifa==16: IFB==16: returnnumelifb==23: return的充盈过客(IFB