java中byte(129)= -127?分析
我们都知道byte的取值范围是-128到127。但是我如果定义一个变量,值为129,强转成byte的情况下,会输出什么?
如图所示,是-127?!其实在我们java中负数是以补码的形式表示的。那么到这里我们就先复习一下子原码 反码 补码。
正数的原码 反码 补码都是一样的。负数的反码是原码除第一位符号位之外,其余位取反,即1变0,0变1。补码就是反码+1。我们直接看上面这题吧。
由于byte只有1个字节。8位。所以129的原码就是1000 0001。它的第一位是1即负数,所以我们应该用补码的形式来表示它。所以它的反码会是1111 1110 补码就是1111 1111换算成10进制的话就是-127。我们可以多练习几道,如果是 byte(131)呢? 131的原码是1000 0011,反码是1111 1100,补码就是1111 1101。所以换算成10进制就是-125。我们如果是byte(-131)呢?道理一样,在我们算出来的结果上加个负号就行。就是-(-125),即125。
还有第二种方法理解这个值越界。
我们可以把byte的取值范围想象成一个圈。即首尾相连,如图:
意思就是当我们走到127时,再往前+1就到了-128,就像是一个循环。这样子我们就可以很快的得出答案来如byte b = (byte)134。 按照这个方法,134 = 128 + 6,即答案应该是等于-121。
然后还有这个不止是byte噢,其他类型的整形数一样适应。
好啦,今天的小复习就到这里了,如有不足,还请各位大佬指出。
java中byte(129)= -127?分析相关推荐
- 探究Java中byte数据类型范围为何是(-128到127)
文章目录 Java中byte数据类型范围为何是(-128到127) 知识要点 关键词解析 8位 符号位 Java中byte数据类型范围为何是(-128到127) 知识要点 byte在java中转为二进 ...
- Java中byte[]与十六进制之间的转化
Java中byte是占8位二进制,十六进制的数是用4位二进制来表示的.因此当byte转十六进制时,将byte的8位二进制,分为高4位和低4位并分别转化为相应的十六进制,再合到一起即可.当十六进制转by ...
- java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...
先看一段推理 +124:0111 1100 -124:1000 0100 +125:0111 1101 -125:1000 0011 +126:0111 1110 -126:1000 0010 +12 ...
- Java中byte类型的范围
Java中为什么byte的范围是 -128~127 在java中byte类型占8位 表示的范围是0000 0000 ~ 1111 1111 总共256个数, java中byte类型有正负,最高位表示正 ...
- Java中byte与16进制字符串的互相转换
https://www.cnblogs.com/qinwangchen/p/5418028.html * Convert byte[] to hex string.这里我们可以将byte转换成int, ...
- Java中 byte[]数组序列化和fastjson序列化区别
Java中 byte[]数组序列化和fastjson序列化区别 Java中,对于对象可以通过序列化成byte数组或者序列化成json形式,这里做下两者的对比. 首先看下实现方式: 1 byte数组序列 ...
- java byte(字节_【原创】Java中Byte字节流处理的自定义方法库2
1.把整型转换成指定长度的数组字节流 public static byte[] int2bytes(int integer, int len) { // if (integer < 0) { ...
- java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
- java乱码详解(java中byte与char的转换)
转自:http://hi.baidu.com/%C6%F3%D2%B5%BC%D2%D4%B0/blog/item/825a4858d6248e8b810a181a.html java byte与 ...
- java数组释放内存空间,Java中数组的内存分析
正文 引言: 墨白在文末给大家准备了程序员的适用壁纸,需要的小伙伴自取,今天的内容是给大家聊聊Java中数组的内存分析和原理,很多朋友可能已经忘记了,毕竟这是非常基础的点了,这次算是给大家复习了吧! ...
最新文章
- C++中Reference与指针(Pointer)的使用对比
- virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法
- DX使用随记--ImageComboBoxEdit
- 【Caffe实践】 添加自己的网络层
- 事务,Oracle,MySQL及Spring事务隔离级别
- linux工程师前景_linux运维工程师前景怎样 就业薪资待遇高吗
- iptables命令_程序员最有用的linux命令汇总
- 滴滴笔试准备 项目分配利益最大化
- qt中设置父窗口中某一控件样式后,子窗口中某一控件也随父控件样式
- leetcode链表题
- matlab判断传递函数的稳定性,基于Matlab的控制系统稳定性判定.pdf
- Android源码提取系统签名
- 绕过卡巴斯基dump进程lsass.exe内存
- 腾讯、阿里、京东…互联网大厂2022新年礼盒长啥样?我酸了
- Java实现蓝桥杯快乐数
- June 12th No Matter How
- 99%网赚精准引流技巧!
- 《1024伐木累》-小白篇之开发网站,三天!(中篇-1)-总章节十
- 这可能是全网最详细的 Python 安装教程(windows)
- 【Python】Scrapy完成电影信息爬取并存入数据库