byte数据类型 byte是Java中的8位有符号整数数据类型,范围是-128到127。通常用来节省内存空间,适用于需要处理大量整数数据且值范围在-128到127之间的情况。 示例代码 下面是一个简单的Java示例代码,演示了给byte赋值128会产生编译错误的情况: publicclassMain{publicstaticvoidmain(String[]args){bytenum=128;// 编译...
但是按照这个逻辑推算过去最小值应该为11111111B=-127才对呀,但是所有的书上都说byte的最小值是-128,这又是为什么呢?举个小例子,按照我们最基本的理解,1个字节的最高位是符号位,那-1+1数学上应该为0,那转成二进制计算为:00000001B+10000001B=10000010B=-2,这明显就和事实不相符了。如果计算机中以这...
也就是说byte能够表示的数据一共有256个数,根据基础知识中的二进制第一位是符号位,又因为正数补码和原码是一致的,所以正数最大值的补码 0111 1111,其代表的就是127,那么从127-1之间存在127个正数,加上0就是128
int类型的128 原码为0000 0000 0000 0000 0000 0000 1000 0000 当将int类型128转换为byte类型时,发生强制转换,截取了最后8位为 1000 0000由于第一位代表符号位,按理解应该此处应该表示为-0与0000 0000应该是一样的表示0。但是我们都知道byte占8位,28为256,byte最多可以表示256个不同的数值。 0000 0000~0111 ...
由0值引出-128的由来: 我们都是原码表示的时候,可以发现0的位置可以是2个值: 00000000 和100000000 分别代表+0 和-0 但是我们将0都转换为补码形式发现: 100000000 – 0 = 100000000 。也就是说0的补码只有1种表示形态了,也就是00000000 那么我们的补码中将就多了1个位置出来,可以存储其他值。我们将10000000 ...
字节是我们在开发中使用的除了bit以外最小粒度的单位,但是关于字节的最小值是-128我一直都没搞懂究竟是为什么,按照我的理解一个字节最小值应该是-127,那怎么来的-128呢? 编辑搜图 请点击输入图片描述 在计算机系统中,最小单位是1位,也就是1bit。根据定义一个字节是8位,也就是说1个字节的最大值是:01111111B...
byte(128)为什么是-128? 查看原文 原码反码以及补码的计算例子 原码反码补码转换总结 1 正数的原码、反码和补码都相同。 2负数原码和反码的相互转换:符号位不变,数值位按位取反。 3负数原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1。 4补码的补码是原码,反码的反码是原码补码和反码的计算例子...
所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的),使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127...
直接给总结:计算机规定了0000 0000 代表0,1000 0000代表的-0没有意义,必须找个~127~127之外的数和它对应,「人为规定-0就是-128」,而且这么做完美适合计算机做减法运算。 来我们一步步分析分析: 1.byte占用8位,每位用0或1表示,能够表示256(2^8)个数据。
直接给总结:计算机规定了0000 0000 代表0,1000 0000代表的-0没有意义,必须找个~127~127之外的数和它对应,「人为规定-0就是-128」,而且这么做完美适合计算机做减法运算。 来我们一步步分析分析: 1.byte占用8位,每位用0或1表示,能够表示256(2^8)个数据。