计算机数据及计算(1)常见的数制及转换

计算机数据及计算(1)常见的数制及转换

提到数制,在我们日常生活中,最常用的是二进制,但在数字电路、计算机中的数制并不只有十进制。

1.常见的数制

1.1十进制

即我们日常生活中最常见的数制类型,包含数字0~9,“逢十进一”
例如:
143.8 = 1 × 1 0 2 + 4 × 1 0 1 + 3 × 1 0 0 + 8 × 1 0 1 143.8=1\times10^2+4\times10^1+3\times10^0+8\times10^{-1}
即十进制数可用以下公式展开:
K i N i \sum K_iN^i
其中 N N 称为基数, K i K_i 为系数, N i N^i 为权。

1.2二进制

在计算机和数字电路中应用最多的数制,由一串只包含0和1的序列组成,逢二进一,基数为2。与十进制类似的,二进制也可作展开:
K i 2 i \sum K_i2^i

1.3八进制

类似的定义,包含0~7,逢八进一,展开如下:
K i 8 i \sum K_i8^i

1.4十六进制

十六进制用数字09和字母AF表示,字母大于数字。由于混入了字母,其表示稍稍复杂。但亦可作通用的展开:
K i 1 6 i \sum K_i16^i
(注:以上为转换为十进制的公式)

2.数制转换

2.1二~十转换

将二进制按前文所述作各位展开并相加即可。

2.2十~二转换

一般采取短除法,例如:
在这里插入图片描述

(借用秒懂截图)
不断将要转换的十进制数与2作模运算,余数倒着输出,即对模数做一个栈(Stack)的出入栈—出栈操作。因此在数据结构中,数制转换也是栈的一个基本习题。

2.3二~十六转换

当二进制为四位二进制时,将其看做一个整体,从低到高没四位看做一个整体转换为十六进制,就可得到一个十六进制数
例如, ( 01011110.10110010 ) 1 (01011110.10110010)_1 转换为十六进制:
0101-5
1101-E
1011-B
0010-2
即十六进制为5EB2。
当最高位和小数为不足4时,用0补足4位

2.4十六~二转换

相反,十六进制数每一位转换成等值的二进制数再组合即可,此处不作概述。

2.5二进制与八进制间转换

方法与二—十六间转换思路一致,但不同的是“逢3操作”,例如:
( 01110010111 ) 2 (01110010111)_2
转换为八进制
即:
011-3
110-6
010-2
111-7
所得即为3627
八进制换二进制也是同样的思路。

2.6十进制转化为十六进制

十进制不可以直接转换为十六进制,但可以先转换为二进制,再转换为十六进制,方法前文已提及。

总结

数字电路和计算机中数制主要涉及的是二、八、十、十六进制,区别在于逢几进一。进制间转换问题。若是转换为十进制,可采用通式累加;其余的有着不同的方法。需要特别注意的是,十进制转换为二进制一般采用栈操作;十进制不可直接转换为十六进制。

参考

阎石,《数字电子技术基础(第六版)》,高等教育出版社

发布了15 篇原创文章 · 获赞 16 · 访问量 1091

猜你喜欢

转载自blog.csdn.net/weixin_44522586/article/details/103221554