黑马程序员技术交流社区

标题: IO流自定义字节流的缓冲区中byte型提升为int型的疑问 [打印本页]

作者: 李贺晓    时间: 2012-11-27 22:07
标题: IO流自定义字节流的缓冲区中byte型提升为int型的疑问
IO流自定义字节流的缓冲区中(第19天视频)
比老师讲到 public int myRead() 方法返回是int型
比如说byte型的-1   ——》11111111     
int型-1怎么会是1111111 11111111 1111111 1111111
作者: 郝少普    时间: 2012-11-27 22:19
本帖最后由 sp000 于 2012-11-27 22:21 编辑

byte (字节)就等于 8 位的二进制, byte型的-1   ——》1111-1111
int  占4个字节 所以 int型-1怎么就是1111-1111 1111-1111 1111-1111 1111-1111
int = 4倍的 byte,   这样就明白了吧!
加油
作者: ljhheima    时间: 2012-11-28 12:45
sp000 发表于 2012-11-27 22:19
byte (字节)就等于 8 位的二进制, byte型的-1   ——》1111-1111
int  占4个字节 所以 int型-1怎么就是111 ...

你能解释一下-2的值是多少?
作者: ljhheima    时间: 2012-11-28 12:47
本帖最后由 ljhheima 于 2012-11-28 12:53 编辑

这是补码的表示形式,它加1要等于0。无论是int还是byte,-1的值都是0-1;-2则是0-2;
byte分别为:11111111    和 11111110。
int 分别为:11111111 11111111 11111111 11111111 和 11111111 11111111 11111111 111111110
还有你的int型-1写错了,写少了一些1,一字节8位的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2