一,基本概念认知
1,为啥要用补码
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。...
分类:
其他好文 时间:
2015-07-06 23:33:16
阅读次数:
303
左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。(均.....
分类:
其他好文 时间:
2015-07-05 16:14:38
阅读次数:
113
signed:表示有符号位,最高位包括正数、负数和0;unsigned:表示无符号位,最高位表示 数值,不表示符号;signed int a:a 的取值范围是:-2^.....这个就想不起来要占几位了。。大学时,学了2遍编译原理,还是没有学会。。。悲了个催的。
分类:
其他好文 时间:
2015-06-26 09:09:56
阅读次数:
107
Java基本数据类型一览表
原生类型
占位数
是否有符号位
最小值
最大值
默认值
包装类
备注 boolean
1
无
——
——
false
Boolean
boolean类型是孤独的皇后,她无法和其他类型转换
byte
8
有
-2^7=-128=Byte.MIN_VALUE
2^7-1=127=Byte.MAX...
分类:
编程语言 时间:
2015-06-19 10:38:09
阅读次数:
160
原生类型
占位数
是否带符号位
最小值
最大值
默认值
包装类
备注
boolean
1
不带
——
——
false
Boolean
boolean类型是孤独的皇后,她无法和其他类型转换
byte
8
带
-2^7=-128=Byte.MIN_VALUE
2^7-1=127=Byte.MAX_VALUE
0
Byte
IO流中经常使用...
分类:
编程语言 时间:
2015-06-18 09:38:23
阅读次数:
127
要得到最大的int值: 1.利用(unsigned int)-1,这样得到的就是unsigned int表示的最大值。 2.int值只是比unsigned int多一位符号位,所以对(unsigned int)-1右移一位就可以得到最大的int值。 3.也就是(int)((unsigned i...
分类:
编程语言 时间:
2015-06-14 21:19:32
阅读次数:
139
1的原码 0000 0001
-1的原码 1000 0001(最开始的1为符号位)
两者相加 1000 0010 不等于 0
所以才有补码,有了补码就可以直接进行运算
反码定义
1.正数的反码与原码相同
2.负数的反码,符号位为“1”保持不变,数值部分按位取反。
EX:
1的反码 0000 0001
-1的反码 11...
分类:
其他好文 时间:
2015-06-10 22:44:01
阅读次数:
120
概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。正数补码为其本身;负数补码为其绝对值各位取反加1;例如:+21,其二进制表示形式是00010101,则其补码同样为00010101-21,按照概念其绝对值为00010101,各位取反为1110..
分类:
编程语言 时间:
2015-06-03 16:01:13
阅读次数:
199
C语言数据类型原码:最高位表示符号位:0表示+,1表示-;[+1]原= 0000 0001[-1]原= 1000 0001反码:反码转反码:对反码再一次求反码正数的反码是其本身;负数的反码是其原码的基础上,符号位不变,其他位各个取反。[+1] = [00000001]原= [00000001]反[-...
分类:
编程语言 时间:
2015-06-02 14:59:08
阅读次数:
101
在计算机内存中,float型数据占4个字节,double型占8个字节,它们在计算机中的存储分为三个部分:符号位:0代表正,1代表负。指数位:将一个二进制数用科学计数法表示之后指数的值。尾数位:用科学计数法表示的前面的数。其中存储的方式如图double型的数据存储方式与之类似,只不过能表示更大的数位现...
分类:
其他好文 时间:
2015-05-29 00:37:20
阅读次数:
137