数制转换

原创

https://shimo.im/docs/HqYQyGGxrDKpqT8Q/ 《数制转换》,可复制链接后用石墨文档 App 或小程序打开---带图

一、各种进制转换为十进制

规则按位 加权 求和(将各位对应的系数与所对应的权相乘再求和)

eg.

(101.11)2            指二进制数101.11                   

(372.01)8            指八进制数372.01        

(2A. 7F)16           指十六进制数2A. 7F              即下角标表示是几进制数

 

 

二、十进制转换为其它进制

(1)十进制---->二进制

整数部分的转换: 除基取余, 逆序排列          除到商为0时停止(除法定义类似C,整数相除,商只看整数部分)          指的是转换目标的进制数

eg. (41)10 = (             )2

 

小数部分的转换: 乘基取整, 顺序排列       取整指 取整数部分

eg. (0.39)10 = (          )2+e         转换时通常会对转换后的位数做一个规定,如果没有位数的限制,转换完成的标志是乘到小数部分为0

在下标处加一个e代表本次转换存在一定的转换误差

 

 

(2)十进制---> 任意进制

整数部分采用基数(R)除法, 即  除基(R)取余, 逆序排列;

小数部分采用基数(R)乘法, 即  乘基(R)取整, 顺序排列.

eg.(153.8125)10 转换为八进制数

(153.8125)10 = (         )8

 

 

三、二进制与八进制之间的转换

(1)二进制-->八进制

把二进制数从小数点开始分别向右和向左分成三位一组, 每组便是一位八进制;

若不能正常构成三位一组,则在二进制整数部分高位添0或在小数点低位添0来补足三位一组

eg.(10011101.01)2 = (010 011 101 . 010)2 = (235.2)8

 

(2)八进制-->二进制

将各八进制数按位展成三位二进制数即可.

eg.(753.4)8 = (111 101 011 . 100)2 = (111101011.1)2

 

四、二进制与十六进制之间的转换

(1)二进制-->十六进制

把二进制数从小数点开始分别向右和向左分成四位一组, 每组便是一位十六进制数;

若不能正常构成四位一组, 则在二进制整数部分最高位添零或在小数点低位添0来补足四位一组

eg.(1011101000.011)2 = (0010 1110 1000 . 0110)2 = (2E8.6)16

 

(2)十六进制-->二进制

将各十六进制数按位展成四位二进制数即可

eg.(3FD.B)16 = (0011 1111 1101.1011)2 = (1111111101.1011)2

 

五、八进制与十六进制之间的转换

通过二进制做中介

: 八进制-->二进制-->十六进制

      十六进制-->二进制-->八进制

 

 

原文地址:https://www.cnblogs.com/SophieWang-cmu/p/12838131.html