首页 > 编程知识 正文

python进制转换算法,python任意进制转换为十进制

时间:2023-05-06 13:21:06 阅读:14401 作者:1004

二进制、八进制、十进制、十六进制这个也没有人不知道吗? 不会吧,不会吧?

复制,转换原理,知道原理后,用百通的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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。