补码是为了解决 0 的符号两个编码的问题 。在补码运算中 [1000 0000] 就是 -128 。也就得出来了我们的输出值 -128 。
让我们看一下 129 的计算方式:
首先知道 129 的二进制是 [1000 0001] , 转换成 8 bit之后就变成首尾符号位为负数 ,
然后得出补码 [11111 1111] 也就是 -127 了 。
从这里我们也就可以根据补码知道了 byte 数据类型的取值范围:
[1111 1111] ~ [0111 1111] 也就是 -128 ~ 127 。
这里总结一下原码 , 反码 , 补码的大概含义 。
原码:原码就是用第一位表示符号 , 其余位表示值 , 就如同上面的 16 位 [0000 0000 1000 0001] 。
反码: 正数的反码是原码本身 , 负数的反码是在原码的基础上 , 其余各个位取反 。
上面的值就变成:[0000 0000 1000 0001]
补码:正数的补码就是其本身 , 负数的补码就是在原码的基础上 , 其余的各位都取反 , 并在最后一位1 。也就是在反码的基础上1 。
最终的补码变成:[0000 0000 1000 0001] 也就是129 。
从这里也就可以看出来 , 我们在进行数据处理的时候尽量不要用位数大的数据类型转换成小的数据类型 , 除非你很清楚这样转换没有问题 。
浮点类型的强制转换以上说的都是整数的强制转换问题 , 浮点型的也可以转换 。这里做两个演示 。
这里就是要引入浮点和整型进行转换或者运算的时候出现的问题 。对于金融来说 , 很少使用 float 和 double 进行运算和使用 。推荐使用 BigDecimal 对象 。具体为什么 。了解原理可以参阅 : IEEE 754标准 。后期有时间再写一篇详细的原因 。主要还是二进制位的运算区别 。
数据类型的转换 , 先说到这里吧 。关注我 。后续更多基础到实战的内容 。虽慢但永不停更 。
推荐阅读
- 我来教你Word 2013中输入编号的快捷方法介绍 我来教你吧日剧百度云资源
- 教你wps2007中把一整页删除的操作方法 教你如何反怼回复
- 教你wps2007中关闭屏幕提示功能的相关操作步骤 教你wps怎么删除空白页
- 五百越南盾换人民币多少人民币多少人民币,越南500元钱 换中国人民币多少钱
- 夏天怎么防止猫咪中暑 如何防止猫咪中暑
- 小编分享在三星s10 中设置系统主题的图文教程。
- 小编教你在三星s10 中删除浏览器记录的图文教程。
- 我来教你在魅族note9中更换系统主题的方法讲解。
- 我来分享在魅族手机中关闭天气预报的方法介绍。
- 天门山景区玩多少时间,您好安排了大概一天的时间游天门山看资料说有东中西线请问应