计算机中的编码,数制及转换
常用进制
二进制、八进制、十进制、十六进制
十进制
数码:0;1;2;3;4;5;6;7;8;9
进位规则:逢十进一
表示字母:D(可省略)
示例:101D;123
二进制
数码:0;1
进位规则:逢二进一
表示字母:B
示例:101;10B
八进制
数码:0;1;2;3;4;5;6;7
进位规则:逢八进一
表示字母:O
示例:101;456O
十六进制
数码:0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F(不区分大小写)
进位规则:逢十六进一
表示字母:H
示例:10119H;0A123H(首位是字母,则开头为零)
进制转换
十进制转二进制
整数部分转换:除以二取余数部分,倒序
小数部分转换:乘以二取整数部分正序
注:乘到小数位为零,若一直不为零,虚截取一定位数(三至四位)即可
例:10.25D=1010.01B;12.8125D=1100.1101B
十进制转八进制
整数部分转换:除以八取余数部分,倒序
小数部分转换:乘以八取整数部分正序
例:126.64D=176.507O
十进制转十六进制
整数部分转换:除以十六取余数部分,倒序
小数部分转换:乘以十六取整数部分正序
注:乘到小数位为零,若一直不为零,虚截取一定位数(三至四位)即可
例:126.64D=7E.A3H
二进制转十进制
- 计算按权位展开求和
整数部分:从右到左,从二的零次方开始指数逐次加一
小数部分:从左到右,从二的-1次方开始指数逐次减一
例: 10.101 B = 2.625 D
整数部分:1 * 21 +0 * 20 = 2 小数部分: 1 * 2-1 + 0 * 2-1 + 1 * 2 -2 = 0.5 + 0.125 = 0.625
八进制转十进制
计算按权位展开求和
整数部分:从右到左,从八的零次方开始指数逐次加一
小数部分:从左到右,从八的-1次方开始指数逐次减一
十六进制转十进制
计算按权位展开求和
整数部分:从右到左,从十六的零次方开始指数逐次加一
小数部分:从左到右,从十六的-1次方开始指数逐次减一
例: 12CCB.12 = 77003.0703125
整数部分12CCB = 1 * 164 + 2 * 16 3 + 12 * 162 + 12 * 161 +11 * 16 0 = 77003
小数部分0.12 = 1 * 16-1 + 2 * 16-2 = 0.0625 + 0/0078125 = 0 .0703125
二进制转八进制
整数部分:从右到左,每三位为一个八进制数,不够三位前面补零
小数部分:从左到右,每三位为一个八进制数,不够三位后面补零
无论是整数还是小数,每组按整权位展开求和计算
例: 1101.10 = 15.4
整数部分: 001 101 = 1 5 小数部分: 100 = 4
二进制转十六进制
整数部分:从右到左,每四位为一个十六进制数,不够三位前面补零
小数部分:从左到右,每四位为一个十六进制数,不够三位后面补零
无论是整数还是小数,每组按整权位展开求和计算
例: 10101.10 = 15.8
整数部分: 0001 0101 = 1 5 小数部分: 1000 = 8
十六进制转二进制
- 0A9.67 H = 1010 1001.0110 0111 B
- 每位数字用四位二进制数表示
整数: A =1010 9= 1001 小数: 6 = 0110 7 0111
GitHub Discussions