首页 新闻 会员 周边 捐助

byte什么时候是-128--127,什么时候范围是0-255?

0
悬赏园豆:10 [已解决问题] 解决于 2021-01-06 15:10

有符号 byte 表示范围是 -128 ~ 127,无符号 byte 表示范围是 0 ~ 255

看了一下网上的解释,依然有点懵

刀锋93的主页 刀锋93 | 初学一级 | 园豆:192
提问于:2021-01-05 14:42

感谢各位回复,总结一下,1.在java中没有无符号byte,c++里有 2.byte由8位二进制0-1组成,比如000000001,最高位为符号位,0表示+正,1代表-负,总共2的7次方=128组合(0~127) 加负的那一半(-127~-0) 由于-0在计算机中无意义,因此将-0用-128来代替

刀锋93 3年前
< >
分享
最佳答案
0

无符号byte 叫 ubyte吧,范围 0 - 255
有符号的叫byte ,范围 -128 ~ 127

收获园豆:10
echo_lovely | 小虾三级 |园豆:1546 | 2021-01-05 15:35

哦,

8为二进制,不就是 0 - 255

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-05 15:39

有符号的 第一位 是符号,所以只有7位表示 数的二进制
没有符号的 就有8位标识数的二进制

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-05 15:40

没懂起

刀锋93 | 园豆:192 (初学一级) | 2021-01-05 17:32

@刀锋93: 无符号 byte 叫 sbyte ,有符号 byte 叫 byte

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-06 08:20

@小草上飞飞: 对,我想知道,我可以声明byte,然后它的取值范围-128~127
那么你说的sbyte怎么应用呢,又声明不了sbyte这种类型

刀锋93 | 园豆:192 (初学一级) | 2021-01-06 10:29

@刀锋93: 啥语言的?

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-06 10:30

@小草上飞飞: java

刀锋93 | 园豆:192 (初学一级) | 2021-01-06 10:33

@刀锋93: emmm

印象里 Java 基本类型里没有无符号类型,所以,Java的byte都是-128~127

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-06 11:46

@刀锋93: 需要无符号类型的,可能需要自己做转换

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-06 11:47

@小草上飞飞: java里确实没有无符号byte,但io里read(),返回的范围就是0~255跟无符号byte范围一致,应该有所关联

刀锋93 | 园豆:192 (初学一级) | 2021-01-06 14:13

@刀锋93: 这个是的,你需要做个转换,我看到有人写博客做转换

echo_lovely | 园豆:1546 (小虾三级) | 2021-01-06 14:17
其他回答(2)
0

因为一byte是一个8位的二进制数,其中一位用来表示正负

会长 | 园豆:12463 (专家六级) | 2021-01-05 19:31

嗯,最高一位不用来表示数值位,表示正负。怎么用的呢

支持(0) 反对(0) 刀锋93 | 园豆:192 (初学一级) | 2021-01-06 10:27

@刀锋93: 1表示负数;0表示正数

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2021-01-06 10:42
0

学习了,记下

Coding? | 园豆:204 (菜鸟二级) | 2021-02-08 23:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册