计算机中数据的表示方法
计算机是一种电子设备,由复杂的电子元器件组合
而成
电子元器件有带电和不带电两种状态,通常
我们将带电状态表示为数值1,不带电状态表示为数值0,
多个这样的元器件的组合可以表示更多状态,也就是可
以表示更多的数据,如000表示0,001表示1,010表示2
011表示3,依此类推,111表示7,一个元器件可表示一位
it)数据,这种表示数据的方式就叫二进制。在实际
的电子设备中,我们将8个这样的元器件形成一个单元
这样的单元叫一个字节(byte),一个字节能表示多少个
数呢?表示数值的范围是0255
个字节由8个二进位组成,其中最右边的一位称为
最低有效位”或“最低位”,最左边的一位称为“最
高有效位”或“最高位”。每
进位的值是0或1。
计算机中数据的表示方法
二进制计数的缺点:书写太长,容易出错
般计算机的数据位数都是4的整数倍,所以
在计算机里通常采用16进制计数法。用数字
可以表示各种信息,计算机里只有数值
你在内存中看到一个数值时,这个数值可能
代表各种意义,生活中的数值也可以代表其
他意义,如1234可以代表密码,存款额,电
报信息,根据上下线索,我们就能够知道这
数值代表的意义。
原码、反码和补码
原码
将最高位作为符号位(以0代表正,1代表负),其余
各位代表数值本身的绝对值(以二进制表示)
为了简单起见,我们用1个字节来表示一个整数。
+7的原码为
00000l11
-7的原码为
问题:
+0的原码为
0的原码为
原码、反码和补码
反码
个数如果为正,则它的反码与原码相同;一个数如
果为负,则符号位为1,其余各位是对原码取反
为了简单起见,我们用1个字节来表示一个整数
+7的反码为
7的反码为:
l1I11000
问题
+0的反码为:
-0的反码为
原码、反码和补码
补码
利用溢出,我们可以将减法变成加法
对于十进制数,如果从9得到结果5,可以用减法:
因为4+6=10,我们将6作为4的补数,将上式的减法改写为加法
去掉高位1(也就是减去10),得到结果5
对于16进制数,如果从C得到结果5,可以用减法
因为7+9-16,我们将9作为7的补数,将上式的减法改写为加法:
去掉高位1(也就是减去16),得到结果5