进制杂烩 - 二进制、十进制、八进制、十六进制转换及原理
进制杂烩 - 二进制、十进制、八进制、十六进制转换及原理
目录
进制数
各类进制转换十进制:
十进制:
二进制转换十进制:
十进制转换各类进制
十进制转换二进制:
① 整除法(除商取余法)
② 对照法
十进制转换八进制 -- 同理整除法、对照法均适用
十进制转换十六进制 -- 同理整除法、对照法均适用
二进制转换各类进制
二进制转换八进制
原理:二进制的每三位相加的和 = 对应八进制的一位
二进制转换十六进制
原理:二进制的每四位相加的和 = 对应十六进制的一位;
小数部分转换规则
参考文献
发源
二进制的由来: 机器语言,通电断电传输数据;计算机内部的所有数据和指令都是以二进制形式存储和处理的。
十进制的由来:掰手指,一共十个啦。
进制数
二进制数:0 1
十进制数:0 1 2 3 4 5 6 7 8 9
八进制数:0 1 2 3 4 5 6 7
十六进制数:0 1 2 3 4 5 6 7 8 9 A B C D E F(其中AF 分别对应1015)
八进制是每三位一组,表示要求补0,否则不知道是什么进制,eg:016
同理,十六进制不足四位补0X,eg:0X16;十进制的话就是16;主要是便于区分
各类进制转换十进制:
十进制:
二进制转换十进制:
八进制转换十进制:
十六进制转换十进制:
十进制转换各类进制
十进制转换二进制:
① 整除法(除商取余法)
除以2取余法:通过不断将十进制数除以2,并记录每次的余数,直到商为0为止。最后将余数从下往上排列,即得到二进制数。
13 ÷ 2 = 6 ... 1
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
② 对照法
将对应二进制的幂写出,对照取比较转换为二进制,大于则取1,小于就取0;
例如:125 转换为二进制
256 128 64 32 16 8 4 2 1 ==>(1 1 1 1 1 1 1 1 1 )
125<128,则对应位取0;125>64,对应位取1;
剩余61,61>32,对应取1;
剩余29,29>16,对应取1;
剩余13,13>8,对应取1;
剩余5,5>4,对应取1;
剩余1,2>1,对应取0;
剩余1,1=1,对应取1;
十进制转换八进制-- 同理整除法、对照法均适用
除以8取余法:通过不断将十进制数除以8,并记录每次的余数,直到商为0为止。最后将余数从下往上排列,即得到八进制数。
图1:十进制转换八进制示例
十进制转换十六进制 -- 同理整除法、对照法均适用
二进制转换各类进制
二进制转换八进制
421法(八进制):
原理:二进制的每三位相加的和 = 对应八进制的一位
举例:
将101111 转换为16进制
① 拆分
101111 拆分成 10 和1111 两个模块,方便理解可对10部分补0凑成四位;
② 对照
将A部分的四位数 分别对应 8 4 2 1 的位置 得到 2 和 0 相加等于 2
将B部分的四位数 分别对应位置,得到 8、4、2、1相加等于15,用16进制表达即F
③ 转换
A = 10 ===> 0010 ===> 0 + 0 + 2 + 0 = 2
B = 1111 ===> 8 + 4 + 2 + 1 = 15 对应16进制的F
④ 计算
验证一下:
二进制转换十六进制
8421法(十六进制):
原理:二进制的每四位相加的和 = 对应十六进制的一位;
举例:
将101111 转换为16进制
① 拆分
101111 拆分成 10 和1111 两个模块,方便理解可对10部分补0凑成四位;
② 对照
将A部分的四位数 分别对应 8 4 2 1 的位置 得到 2 和 0 相加等于 2
将B部分的四位数 分别对应位置,得到 8、4、2、1相加等于15,用16进制表达即F
③ 转换
A = 10 ===> 0010 ===> 0 + 0 + 2 + 0 =2
B = 1111 ===> 8 + 4 + 2 + 1 = 15 对应16进制的F
④ 计算
验证一下:
小数部分转换规则
二进制小数转换十进制小数
规则:从小数的的第一位依次降幂。
十进制小数转换二进制小数
规则: 乘二取整法,将十进制的小数部分乘2,取整数部分,小数部分继续乘2,直到没有小数位,即为0为止。
读数,从第一位读起,读到最后一位,即0.011
二进制数的表示:
位(Bit):二进制数的基本单位,表示0或1。
字节(Byte):8个位组成一个字节,是计算机中常用的数据单位。
字(Word):计算机中处理数据的基本单位,通常是16位、32位或64位。
参考文献
参考链接:常用进制转换方法(取商留余)原理解析, 附基于栈实现进制转换的代码 - 执生 - 博客园