关于Java中Byte类型的取值范围的理解
来源:互联网 发布:安卓手机设置网络 编辑:程序博客网 时间:2024/06/05 11:27
【转载自夏亦流风播客】点击打开链接
学习C语言的时候对int类型范围理解得不透彻,所以通过网上查询资料,结合大牛的讲解分析了一下byte类型的范围,希望可以帮到大家。
1、知识理解
在计算机内,定点数有3种表示法:原码、反码和补码
[原码]二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
计算机数据是用补码表示的,正数的补码就是它的原码,而负数的补码是将其原码(取绝对值后的原码)取反加1得到的。
2、理解方式11.确定byte是1个字节,也就是8位
2.最大的应该是0111 1111,因为第一位是符号位,0表示正数
3.最小的应该是1000 0000(1111 1111是是负数-1的补码)
4.0111 1111即127
5.1000 0000按照上面的解释为先减一,得到0111 1111,然后按位取反得到1000 0000,该结果为欲求负数的绝对值,所以结果是-128(和概念反着来求出该负数)
3、理解方式2
0 00000000
1 00000001…….
127 01111111
----------------
正数(包括0)共 128 个
-1 11111111
-2 11111110
……
-128 10000000
----------------
负数共 128 个
我们都知道byte占8位。而2的8次方等于256,也就是byte最多可以表示256个不同的数,
0~127:128个
-0~127:128个
但是这里0与-0表示一样的数了,所以就用-0的二进制补码表示到-128里面去了(这里是关键,也就是说-0的补码用来表示-128了,根据理解方式1中的第五步,-0的补码"10000000"通过逆向计算刚好得到-128这个值)
阅读全文
0 0
- 关于Java中Byte类型的取值范围是-128~127的理解
- 关于Java中Byte类型的取值范围的理解
- java基本类型byte的取值范围
- java基本类型byte的取值范围
- Java byte 类型的取值范围是-128~127
- 关于java中整数类型数据的取值范围
- 为什么java中Byte类型的取值范围是-128~127
- 为什么Java中byte类型的取值范围是-128~127
- java中byte、short、int、long、float、double类型的取值范围
- Java中,为什么byte类型的取值范围为-128~127?
- Java中byte类型的取值范围为什么是-128~127
- java 中 byte,short,int,long的取值范围
- Java中byte的取值范围(-128~127)
- JAVA byte取值范围表达理解
- 为什么Java byte 类型的取值范围是-128~127
- 为什么Java byte 类型的取值范围是-128~127
- 为什么Java byte 类型的取值范围是-128~127
- java中的byte类型的取值范围是-128~127
- Gogland升级更新Remote Hosts Access插件出现 IDE ERROR
- 35 个 Java 代码性能优化总结
- 写一个0到9等奖随机的算法
- spring boot maven 报错 sconnected from the target VM, address: '127.0.0.1:57472', transport: 'socket'
- 旅行必备的地图,三分钟看懂方位图~
- 关于Java中Byte类型的取值范围的理解
- arraylist linkedlist vector的区别
- iOS 设备是否越狱的判断代码
- session的典型案例三:实现一次性验证码
- php class类的用法详细总结
- Android开发中高效的数据结构
- JAVA中的反射机制和动态代理
- 深度分析-从源代码看Hcash(超级现金)的矿业指南和矿工规划,含挖矿收益预估
- 关于跨域访问的扯淡