八位二进制数为什么表示范围是:-128~~+127?
2014-05-28 09:25
363 查看
http://blog.sina.com.cn/s/blog_7090a2d101012jmq.html
计算机对带符号数的表示有三种方法:原码、反码和补码
8位原码和反码能够表示数的范围是-127~127
8位补码能够表示数的范围是
-128~127
所以既然范围是-128~127,那肯定是用补码表示的。
10000000-11111111表示-128到-1, 00000000-01111111表示0-127
补码的1111 1111转换成原码就是1000 0001,也就是-1。
补码就是二进制表示负数的一种方法
引入了补码概念.负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:
(-128~0~127)共256个.
注意:(-128)没有相对应的原码和反码, (-128) = (10000000)
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
计算机对带符号数的表示有三种方法:原码、反码和补码
8位原码和反码能够表示数的范围是-127~127
8位补码能够表示数的范围是
-128~127
所以既然范围是-128~127,那肯定是用补码表示的。
10000000-11111111表示-128到-1, 00000000-01111111表示0-127
补码的1111 1111转换成原码就是1000 0001,也就是-1。
补码就是二进制表示负数的一种方法
引入了补码概念.负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:
(-128~0~127)共256个.
注意:(-128)没有相对应的原码和反码, (-128) = (10000000)
所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
相关文章推荐
- 数据类型:整数最小值为何不是最大值的相反数(为什么八位二进制数表示范围是:-128~127 ) ?
- 八位二进制数为什么表示范围是:-128~~+127?
- 八位二进制数为什么表示范围是:-128~~+127?
- 八位二进制数为什么表示范围(-128~~+127)理解
- 八位二进制数为什么表示范围是:-128~~+127?
- 八位二进制数为什么表示范围是:-128~~+127?
- 为什么八位二进制表示范围为-128~127?
- 解读为什么有符号的char可表示范围是-128~+127
- 为什么Java byte 类型的取值范围是-128~127
- 为什么java中Byte类型的取值范围是-128~127
- C语言中 char 类型的取值范围为什么是-128~127
- 探究:java中的char的取值范围,为什么是-128到127?
- java中为什么byte的取值范围为-128~127
- 浅析为什么char类型的范围是 —128~+127
- [转载]浅析为什么char类型的范围是 —128~+127
- 带符号的char类型取值范围为什么是-128——127
- 为什么byte型数据的取值范围为-128~127
- java中为什么byte的取值范围是-128到+127
- 浅析为什么char类型的范围是 —128~+127
- 为什么Java byte 类型的取值范围是-128~127