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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天方地圆 中级黑马   /  2014-3-19 18:37  /  3115 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天方地圆 于 2014-3-20 17:24 编辑

byte的取值范围为什么是-128~127?还有int的取值范围,都是怎么得来的,?

13 个回复

倒序浏览
byte是基本数据类型,内存就给分配一个字节,一个字节占八位,所以是-128-127(它们二进制形式就是八位)。就是这么得来的~~~

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
按字节分配的,因为最高位是符号位,
byte占一个字节,一个字节8位 所谓范围是-128~127(-2^8~2^7-1)
int占四个字节,也就是三十二位,其范围是-2^31 ~2^31-1

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
一个byte是1个字节,也就是8位。通过二级制算法 取得最大值是127,最小值是-128. 都是算出来的。
回复 使用道具 举报
一个字节是8位,8位的取值范围就是那么多,一个int是4个字节,你自己可以算一算,锻炼一下

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
byte类型的数据在内存中只占一个字节,即8位二进制位,而最高位是符号位,且用补码表示
所以,byte的取值范围就是 -2^7到2^7-1,即-128到127
同理
int类型的数据在内存中占四个字节的数据,即32位二进制位,而最高位为符号位,也是用补码表示
所以……

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
首先byte是占一个字节的,它由8位二进制位组成。byte类型的二进制取值范围从00000000~11111111,你可以把它看成两段00000000(0)~1111111(127)和10000000(-128)~11111111(-1),两段加起来为-128~127.这样好理解一点。不要去考虑其他的负数的二进制表现形式什么的那样反而会搞糊了。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
Ranger 中级黑马 2014-3-20 20:49:13
8#
是根据二进制数得来的,byte是由8位二进制数控制,而int由32位二进制数控制
回复 使用道具 举报
byte 是一个字节 。  int  是 4个字节 啊  亲
回复 使用道具 举报
一个字节占八位,第一位是符号位也就是说,也就是说被正负等分,一人一半,因为中间有个0,所以下限是-128,上限是+127,一共正好有256个数,也就是2的8次方,我就是这样理解的!同样Int是4个字节32为,2的32次方是65536,将这个数除以2,不就是32768,因为还有个0,所以不就是-32768到+32767么

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
byte是字节的意思,在计算机语言中一个字节有8位,每个位上面只可以存储0或1,最高位是符号位,0为正1为负。所以byte的范围是-2^7到2^7-1。同理int在java语言中占有4个字节,一共32位,最高位也是符号位,所以int的范围是-2^31-2^31-1,即-32768-32767。
回复 使用道具 举报
byte 是一个字节 , int  是 4个字节,一个字节8位,127,128就是这么算出来的
回复 使用道具 举报
首先,每一个类型在机器里面都有特定的大小,即占有几个字节,而一个字节是8位,byte是占2个字节,你自己再算一下就知道结果了
回复 使用道具 举报
1byte是1个字节。一个字节是8位。所以1byte的范围就是-2的8次方到2的8次方-1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马