目录
在计算机中,数据都是采用二进制进行表示储存的,就是只有0和1两个元素进行组合构成,逢二进一的思想进行表示。
一、数字的分类
对于数字,根据数值的正负之分,可以分为有符号数(signed)和无符号数(unsigned);根据数值的整数小数之分,可以分为纯整数和纯小数。对整数数字的表示方法采用原码表示、补码表示、反码表示。采用最高位的二进制位作为符号位,0表示正数,1表示负数。对于正数来说原码、补码和反码都是一样的;而对于负数,补码等于其原码的逐位取反,反码等于其原码的逐位取反再加1。
对于小数数字表示方法采用定点表示和浮点表示,所谓的定点表示就是数据的小数点位置不变,根据小数点固定在有效数位的最前面和最后面,分为定点小数和定点整数;而在实际应用中往往都是混合的小数(既有整数部分又有小数部分),这就需要小数点的位置根据需要进行浮动,这就是浮点数,浮点数的表示由阶码部分和尾数部分构成,同时就需要一种编码方法——移码表示法。
二、整数
1.无符号数
无符号表示大于或者等于0的数字,是基于传统的二进制表示法进行编码。
对于一个8位的二进制10110011数表示如下:
1*2^7+0*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=179
如上,该数字表示十进制数为179
对于8位的二进制数我们能够表示的范围为0(00000000)~255(11111111).
2.有符号数
有符号数表示可以为正或者为负的数字,通常采用补码进行编码。
(1)原码
原码是计算机中数字的二进制定点表示法。
数码序列中的最高位表示符号位,符号0表示正数,符号1表示负数;其余位表示数值的大小。这样我们使用一个符号位的引用就可以表示正数、负数。对于一个8位二进制数来说,能够表示的范围就是-127(1111 1111)~127(0111 1111)。
(2)反码
如果一个数是正数,那么这个数的反码就是它的原码本身。而负数的反码是在原码的基础上,符号位不变,数值位按位取反。
(3)补码
正数的补码是其原码本身,负数的补码是在其反码基础上再加1。
例如:
【+