java byte 类型的范围解释l

原创 2015年07月10日 00:50:40

1.  java  byte 类型的范围

    计算机中数据存储采用二进制 ,拿byte 为例  0000 0001  

    最左边的0 计算机认为这个数字0000 0001   为正数 转化为10进制 -->1;

    byte 1000 0000 计算机认为这个数字为 负数 ,最左边的1 来识别。

     负数存储在计算机中转换 以-128 为例子 是绝对值128 的反码+1  ,把128 转化为2进制 1000 0000  反码-->0111 1111  加1--->1000 0000。

     之前有个困惑 一直说byte 的范围是-128  -128   ,-128 在计算机中转换为 原码的2进制为 1000 0000 这个不是负数码,这个是我们要纯属到计算机中的值 和正负无关 ,只是个     值(脑子有点呆了)。 

    补码 -1  的反码=补码的反码+1 ,为什么呢 ,这个问题 害的我浪费了一张纸 ,一个补码它可能有 01  ,10,  11 情况(无0000 0000)  然后减 1   加过之后变为 00 ,01 ,10 ,反      码 就变为 11, 10 ,01。 来看补码的反码+1 ,反码 10,01,00 -->+1 -->11,10,01  一样。

    这个不是最有趣的,有趣的是  补码+1的反码 是够等于 补码的反码-1 呢? 一个补码它可能有01,10,11 然后加1--> 10,11,100-->反码 --> 01,00,011。

     补码的反码-1 一个补码可能是01,10,11 然后反码-->10,01,00-->减一--> 01,00,? 到这里就推不下去了。

    正常的想法是补码-1 的反码 等于 补码的反码+1  -->01,10,11-->00,01,10-->11,10,01。

       -->01,10,11-->10,01,00-->11,10,01  这个就成立了,为什么会出现上面无法算下去的情况呢 应该  补码的反码 可能是 0000 0000 所以这个就没法算了。

     

    

java基本类型byte的取值范围

java基本类型byte的取值范围(如何表示一个负数)
  • liuweibirthday
  • liuweibirthday
  • 2010年06月12日 16:31
  • 10951

java中的byte类型的取值范围是-128~127

概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ,然 后 对 整个数 加 1 步骤: 1.确定byte是1个字节,也就是8位 2.最大的应该是0111 1111,因...
  • aoerqileng
  • aoerqileng
  • 2014年11月20日 11:27
  • 2168

关于Java中Byte类型的取值范围是-128~127的理解

学习C语言的时候对int类型范围理解得不透彻,所以通过网上查询资料,结合大牛的讲解分析了一下byte类型的范围,希望可以帮到大家。 1、知识理解 在计算机内,定点数有3种表示法:原...
  • u011601165
  • u011601165
  • 2016年06月13日 17:04
  • 7632

byte类型取值范围以及溢出详解

例1: public class test { public static void main(String[] args) { byte a = 127 ; a = (byte)(a+3...
  • u012959829
  • u012959829
  • 2014年08月20日 12:05
  • 3413

byte范围及8种常见数据类型

byte范围:-128  到 127 原因 : 在计算机内,定点数有3种表示法:原码、反码和补码 原码 :二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码 ...
  • qq_27789551
  • qq_27789551
  • 2016年07月24日 13:19
  • 6666

解密Java byte类型的一个小问题

大家先看一下下面的代码public class Main { public static void main(String[] args) { byte a = 1; ...
  • TimHeath
  • TimHeath
  • 2016年12月13日 21:52
  • 426

c++类型所占的字节和表示范围

(1)short、int 和 long 类型都表示整型值,存储空间的大小不同 一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机 器字长(在 32 位...
  • u010700335
  • u010700335
  • 2014年11月20日 11:55
  • 1989

为什么Java中byte类型的取值范围是-128~127

byte 长度是1字节,也就是8位,八位二进制数转换为十进制最大值是多少?是255。 如果是unsigned byte 那么取值范围就是 0-255,而Java中的byte是有符号位的,第一位表示正...
  • thinking_in_android
  • thinking_in_android
  • 2013年03月17日 21:47
  • 2352

Java byte数据类型详解

(转载) Java代码   public static String bytes2HexString(byte[] b) {       String ret = "";...
  • u010746364
  • u010746364
  • 2016年01月21日 10:28
  • 2708

c#值类型数据的占用字节数和范围

数据类型        占用字节       取值范围         Sbyte         8 -128~127  ...
  • woshisap
  • woshisap
  • 2012年02月21日 14:10
  • 4231
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java byte 类型的范围解释l
举报原因:
原因补充:

(最多只允许输入30个字)