进制之间的转换(计算机系统基础)

进位计数制

一般情况,在R进制数字系统中,采用R个基本符号(0,1,2…R-1)表示各位上的数字,采用**"逢R进一”**的运算规则,对于每一个数位i,该位上的权为R^i。R被称为该数字的基。

B 二进制
O 八进制
D 十进制
H 十六进制
1. R进制转十进制

任何一个R进制数转换成十进制数时,只要**“按权展开“**即可。

将二进制数(10101.01)转换为十进制数:

10101.01 = 1x2^4 + 0x2^3 +1x2^2 + 0 x 2 + 1 + 0x2^-1+ 1x2^-2

将八进制数(307.6)转换为十进制数:

307.6 = 3x8^2 + 7x8^0 + 6x8^-1

将十六进制数(3A.C)转换成十进制数:

3A.C = 3x16^1 + 10x16^0 +12x16^-1

2.将十进制转换为R进制

任何一个十进制数转换为R进制数时,要将整数和小数部分分别进行转换。

1.整数部分的转换:除基取余,上右下左

除基取余,上右下左:要转换的十进制整数去除以基数R,将得到的余数作为结果数据中各位的数字,直到上商为0为止。先得到的余数作为右边低位上的数位,下面的余数作为作为左边高位上的数位。

example:
进制之间的转换(计算机系统基础)_第1张图片

2.小数部分的转换:乘基取整,上左下右

乘基取整,上左下右:要转换的十进制小数去乘以基数R,将得到的乘积的整数部分作为结果数据中的各位数字,小数部分继续与基数R相乘。以此类推,直到某一步乘积的小数部分为0或已得到希望的位数为止。最后,将上面的整数部分作为左边高位上的数位,下面的整数部分作为右边低位上的数位。

Note:转换过程中,可能乘积的小数部分总得不到0,即转换得到希望的位数后还有余数,这种情况下得到的是近似值。

example:
进制之间的转换(计算机系统基础)_第2张图片

3。含整数、小数部分的转换

将整数部分和小数部分分别进行转换即可。

3.二、八、十六进制数的互相转换
1.八进制数转二进制数

只要把每一个八进制数字改写成等值的3位二进制数即可,且保持高低位的次序不变。

八进制数与二进制数的对应关系如下:

0 = 000 1 = 001 2 = 010 3 = 011

4 = 100 5 = 101 6 = 110 7 = 111

example

在这里插入图片描述

2.十六进制数转换为二进制数

只要把每一个十六进制数字改写成等值的4位二进制数即可,且保持高低位的次序不变。

部分16进制数与二进制数的对应关系如下:

A = 1010 B = 1011 C = 1100 D = 1101 E = 1110 F = 1111

example
在这里插入图片描述

3.二进制数转换为八进制数

整数部分从低位向高位每3位用一个等值的八进制数来替换,最后不足3位时在高位补0凑满3位小数部分从高位到低位方向每3位用一个等值的八进制数来替换,最后不足3位时在低位补0凑满3位;

0.10101 = 000.101 010 = 0.52

10011.01 = 010 001.010 = 23.2

4.二进制数转换为十六进制数

整数部分从低位向高位每4位用一个等值的十六进制数来替换,最后不足4位时在高位补0凑满4位小数部分从高位到低位方向每4位用一个等值的十六进制数来替换,最后不足4位时在低位补0凑满4位;

11001.11 = 0001 1001.1100 = 19.C

你可能感兴趣的:(计算机系统基础,windows)