进制的转换

前言

‌进制‌是一种进位计数制,是人为定义的带进位的计数方法。不同的进制使用不同数量的符号,以及不同的规则来组合这些符号以表示不同的数值。


一、进制类型

二进制:由一串0和1组成的数字,逢二进一

八进制:0 1 2 3 4 5 6 7,逢八进一(%O),通常以0开头

十进制:0 1 2 3 4 5 6 7 8 9, 逢十进一(%X)

十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F,通常以0X开头,逢十六进一


二、进制转换

1.取余法

十进制:

>二进制:不断除2取余从下往上读取

>八进制:除八取余

>十六进制:除16取余

2.乘方计算法

二进制:

二进制>十进制:从右往左每位数×2的次方相加的和

二进制>十六进制:

先计算转化为十进制,再除以16取余得16进制

八进制:

八进制>二进制:

先转十进制,再转二进制

八进制转十进制‌:将八进制数按位展开,每位数字乘以8的相应次方(从右至左,次方数从0开始递增),然后将各位的结果相加得到十进制数。

‌十进制转二进制‌:将得到的十进制数不断除以2,记录每次的余数,直到商为0为止。然后将余数从下往上排列,得到二进制数。

3.8421码法

二进制:

二进制>八进制:拆分,不足位补0,三位为一组。因为是三位,所以用421来确定值。如1011010,001 011 010,001转换为1,011为3,010为2,故1011010的八进制数为132

二进制>十进制:从右往左四位为1组,不足补0,8421依次对应,位数是1的按8421对应计数,得到的数相加。如10101:++0001++ ++0101++ 按16 8 4 2 1得16+4+1.对应的十进制数为21

二进制>十六进制:

‌分组与计算‌:将二进制数从右向左每四位一组进行分组。如果最后一组不足四位,可以在前面补零,以确保每组有四位。

‌转换‌:对于每一组四位二进制数,可以对照二进制到十六进制的转换表,将四位二进制数转换为一位十六进制数。如果转换结果超过9,可以使用十六进制中的字母A到F来表示。

‌组合结果‌:将所有转换得到的十六进制数按顺序排列,形成最终的十六进制数。

‌示例‌:以二进制数100101100为例,将其从右向左每四位分组为0001、0010和1100,其中0001需要转换为1,0010需要转换为2,1100转换为12也就是C。因此,二进制100101100转换为十六进制为12C。‌

相关推荐
dialect_11 小时前
KMP算法
开发语言·c++·算法
总要学点什么12 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
漂流瓶jz12 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
前端精髓12 小时前
结构化输出with_structured_output(抽卡)
python·langchain
尹人入圣13 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
开开心心_Every13 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c13 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
Nuanyt13 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌13 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
·present·14 小时前
CSAPP(Bomb lab)
c语言·c++