十进制数字"-23"对应的二进制补码是________。
十进制数字"-23"对应的二进制补码是________。
十进制数字"-23"对应的二进制补码是________。
十进制数字"-23"对应的二进制补码是________。
一、常用数制及其相互转换
在我们的日常生活中计数采用了多种记数制,比如:十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),……。在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下。
1.十进制数
我们平时数数采用的是十进制数,这种数据是由十个不同的数字0、1、2、3、4、5、6、7、8、9任意组合构成,其特点是逢十进一。
任何一个十进制数均可拆分成由各位数字与其对应的权的乘积的总和。例如:
?
?
?
这里的10为基数,各位数对应的权是以10为基数的整数次幂。为了和其它的数制区别开来,我们在十进制数的外面加括号,且在其右下方加注10。
2.二进制数
在计算机中,由于其物理特性(只有两种状态:有电、无电)的原因,所以在计算机的物理设备中获取、存储、传递、加工信息时只能采用二进制数。二进制数是由两个数字0、1任意组合构成的,其特点是逢二进一。例如:1001,这里不读一千零一,而是读作:一零零一或幺零零幺。为了与其它的数制的数区别开来,我们在二进制数的外面加括号,且在其右下方加注2,或者在其后标B。
任何一个二进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、2、4、8、16、32、64、128、……,其小数部分的权由高向低依次是:0.5、0.25、0.125、0.0625、……。
二进制数也有其运算规则:
加法:0+0=0????0+1=1???1+0=1????1+1=10
乘法:0×0=0????0×1=0????1×0=0????1×1=1
二进制数与十进制数如何转换:
(1)二进制数—→十进制数
对于较小的二进制数:
对于较大的二进制数:
方法1:各位上的数乘权求和??例如:
(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45
(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125
方法2:任何一个二进制数可转化成若干个100…0?的数相加的总和??例如:
(101101)2=(100000)2+(1000)2+(100)2+(1)2
而这种100…00形式的二进制数与十进制数有如下关联:1后有n个0,则这个二进数所对应的十进制数为2n。
所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45
(2)十进制数—→二进制数
整数部分:整除以2取余法。例如:75
75/2=37…1??37/2=18…1??18/2=9…0??9/2=4…1??4/2=2…0??2/2=1…0???1/2=0…1
将得到的一系列的余数倒过来书写就得到该数所对应的二进制数(1001011)2
小数部分:乘以2取整法。例如:0.7
0.7×2=1.4…1??0.4×2=0.8…0???0.8×2=1.6…1???0.6×2=1.2…1??0.2×2=0.4…0
3.八进制数
八进制数是由0、1、2、3、4、5、6、7、8任意组合构成的,其特点是逢八进一。为了与其它的数制的数区别开来,我们在八进制数的外面加括号,且在其右下方加注8,或者在其后标Q。
八进制数的基数是8,任何一个八进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、8、82、83、84、85、……,其小数部分的权由高向低依次是:8-1、8-2、8-3、8-4、……。
八进制数与其它数制的转换:
(1)与十进制数的互换
八进制数—→十进制数
十进制数—→八进制数
方法均与二进制数与十进制数互换的方法一样。
(2)与二进制数的互换
八进制数—→二进制数
把八进制数的每一位改成等值的三位二进制数,即“一位变三位”。
例如:56.103Q
?5?????6?.??1????0????3
????↓????↓???↓???↓???↓??????????????
????101??110???001??000??011
所以(56.103)8=(101110.001000011)2
二进制数—→八进制数
把二进制数从小数点开始向两边每三位为一段(不足补0),每段改成等值的一位八进制数即可,即“三位变一位”。
4.十六进制数
十六进制数是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F任意组合构成的,其特点是逢十六进一。为了与其它的数制的数区别开来,我们在十六进制数的外面加括号,且在其右下方加注16,或者在其后标H。
十六进制数的基数是16,任何一个十六进制数亦可拆分成由各位数字与其对应的权的乘积的总和。其整数部分的权由低向高依次是:1、16、162、163、164、165、……,其小数部分的权由高向低依次是:16-1、16-2、16-3、16-4、……。
十六进制数与其它数制的转换:
(1)与十进制数的互换
十六进制数—→十进制数
十进制数—→十六进制数
方法均与二进制数与十进制数互换的方法一样。
(2)与二进制数的互换
十六进制数—→二进制数
把十六进制数的每一位改成等值的四位二进制数,即“一位变四位”。
例如:(3AD.B8)16
?3????A?????D.????B?????8
????↓????↓????↓????↓????↓??????????????
????0011??1010??1101??1011??1000
所以(3AD.B8)16=(1110101101.10111)2
二进制数—→十六进制数
把二进制数从小数点开始向两边每四位为一段(不足补0),每段改成等值的一位十六进制数即可,即“四位变一位”。
个字符,所以标准的ASCII码采用7位二进制编码。因为其中的字符排列是有序的,其对应的ASCII码也是相连的,所以我们只需要记几个关键字符的ASCII码,其它可以推算。
‘0’——48????‘A’——65??????‘a’——97
注:标准的ASCII码能表示的字符较少,于是在其基础上又设计了一种扩充的ASCII码,采用的是8位二进制编码,可以表示256个字符。
???3.BCD码
十进制数在键盘输入和打印、显示输出时往往是将各个数字以ASCII码来表示的。但是在计算机内运算时,是以二进制形式进行的。为了便于转换,设计了一些用二进制编码表示的十进制数,称为二—十进制码,即BCD码(Binary?coded?Decimal)。
BCD码是用四位二进制代码来表示一位十进制数。有多种BCD码:8421码、2421码、余3码、格雷码。
常用BCD码
十进制数字8421码2421码余3码格雷码
00000000000110000
10001000101000001
20010001001010011
30011001101100010
40100010001100010
50101010110001110
60110011010011010
70111011110101000
81000111010111100
91001111111000100
注意:BCD码表示的数形式上像二进制数,但不是真正的二进制数。