数字系统定义了如何用独特的符号来表示一个数字。在不同的系统中,数字有不同的表示方法。数字系统可以分为两类:位置化系统和非位置化系统。本文主要讲的是位置化系统。同学们静下心来看一看,其实很简单。
位置化系统
位置化数字系统中,在数字中符号所占据的位置决定了其表示的值。在该系统中,数字这样表示:
它的值是:
其中,S是一套符号集;b是底(或基数),它等于S符号集中的符合总数。其中Si指该符号的位置是i。k是整数部分数码的数量,t是小数部分数码的数量。
上面这两个公式没有看懂没有关系,先来看看实例再回头看。
十进制系统(以10为底)
在该系统中,底b = 10并且我们使用10个字符来表示一个数。符号集S={0,1,2,3,4,5,6,7,8,9}。
为了简便我们通常省略圆括号、底和正号。例如我们把+(552.23)10(这里是下标10,电脑不方便打,先用这个凑合)写成552.23。
实例1(整数):
有时候我们需要知道可以用数码k表示的十进制整数的最大值,答案是:10的k次方-1.例如:如果k=5,最大值就是10的5次方-1 = 99 999 。
实例2(实数):
二进制系统(以2为底)
在该系统中,底b=2并且用两个符号来表示一个数,S={0,1}。数据和程序是以二进制模式(即位串)存储于计算机中的。这是因为计算机由电子开关制成,它仅有开和关两种状态。
实例1(整数):
数码k表示的二进制整数的最大值是2的k次方-1。例如:如果k=5,最大值:2的5次方-1 = 31。
实例2(实数):
十六进制系统(以16为底)
在该系统中,底b=16并且用16个符号来表示一个数。字符集是S={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.注意符号A,B,C,D,E,F(大写或小写)分别等于10,11,12,13,14,15。
实例1(整数):
同理,如果k=5,最大值就是16的5次方-1=1 048 575 。
实例2(实数):
尽管一个实数可以用十六进制系统表示,但并不常见。
八进制系统(以8为底)
在该系统中,底b=8并且用8个符号来表示一个数。字符集是S={0,1,2,3,4,5,6,7}
实例1(整数):
如果k=5,最大值就是8的5次方-1=32767
实例2(实数):
一个实数可以用二进制系统表示,但并不常见。
各种进制之间相互转换
1.其他进制到十进制的转换
上面已经示范了很多其他进制到十进制的转换了,这里就不再讲解。主要就是将数码乘以其在源系统中的位置量并求和便得到十进制的数。
2.十进制到其他进制的转换
我们能够将十进制数转换成其他进制。需要两个过程:一是用于整数部分,另一个是用于小数部分。
(1)转换整数部分
其实就是用底数反复除源并得到商和余数。余数插入目标(转换目标)的左边,商变为新的源,直到商为零。
实例1:将十进制数35转换为二进制数。我们从这个十进制数开始,一边连续寻找除以2得到的商和余数,一边左移。
实例2:将十进制数126转换为八进制数。
实例3:将十进制数126转换成十六进制数。
(2)转换小数部分
将十进制数0.625转换成二进制
因为0.625没有整数部分,该例子显示小数部分如何计算。这里是以2为底。在左边一角写上这个十进制数。连续乘2,并记录结果的整数和小数部分。小数部分移到右边,整数部分写在每次运算的下面。当小数部分为0,或达到足够的位数时结束。
其他进制的转换同理,只要把要连乘的书换成对应的进制即可。如八进制就是乘8,十六进制就是乘16
二进制转十六进制:这两个进制之间存在一种关系,二进制中的4位恰好是十六进制中的一位。
二进制转八进制:这两个进制之间存在一种关系,二进制中的3位恰好是八进制中的1位。
这一次分享了数字在计算机中的表示方法,其中可能会存在一些文字表达上的错误或者是逻辑上的错误,欢迎大家纠正指出。如果对文章存在疑问,大家可能在底下留言,博主会在24小时之内回复。下一遍我分享了数字在计算机中是怎样存储的,感兴趣的同学可以点击链接看一哈计算机中数字的存储方法。