A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mengxiang1993 中级黑马   /  2015-3-4 19:42  /  762 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     字节到底是什么东西?是二进制数吧。。理解的很浅显。
  1. System.out.println(Integer.toBinaryString(255));
  2.                 byte b=(byte)255;
  3.                 System.out.println(b);
复制代码
输出结果:

  1. 11111111
  2. -1
复制代码
-1不太理解,大家来帮忙指点下,谢谢。


5 个回复

倒序浏览
255默认是int型 占32位 用二进制表示为0000 0000 0000 0000 0000 0000 1111 1111
byte占8位 int强转byte 取低8位 即1111 1111 计算机将8位当作byte类型存储 1为符号位
即为负数 负数在计算中以补码存储(什么是补码自己去百度吧) 要想求出补码的原码采用取反
+1的方式(符号位不取反)即1000 0001转换成十进制就是-1
回复 使用道具 举报 1 0
计算机底层的东西,不好理解啊
回复 使用道具 举报
ko889910 发表于 2015-3-4 20:11
255默认是int型 占32位 用二进制表示为0000 0000 0000 0000 0000 0000 1111 1111
byte占8位 int强转byte 取 ...

谢谢,明白了。还有个问题就是byte都是有符号数,对吧
回复 使用道具 举报
mengxiang1993 发表于 2015-3-4 21:12
谢谢,明白了。还有个问题就是byte都是有符号数,对吧

java中貌似不支持unsigned的关键字 所以都是有符号数
回复 使用道具 举报
本帖最后由 z47057554 于 2015-3-5 10:52 编辑

二楼正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马