有符号 byte 表示范围是 -128 ~ 127,无符号 byte 表示范围是 0 ~ 255
看了一下网上的解释,依然有点懵
无符号byte 叫 ubyte吧,范围 0 - 255
有符号的叫byte ,范围 -128 ~ 127
哦,
8为二进制,不就是 0 - 255
有符号的 第一位 是符号,所以只有7位表示 数的二进制
没有符号的 就有8位标识数的二进制
没懂起
@刀锋93: 无符号 byte 叫 sbyte ,有符号 byte 叫 byte
@小草上飞飞: 对,我想知道,我可以声明byte,然后它的取值范围-128~127
那么你说的sbyte怎么应用呢,又声明不了sbyte这种类型
@刀锋93: 啥语言的?
@小草上飞飞: java
@刀锋93: emmm
印象里 Java 基本类型里没有无符号类型,所以,Java的byte都是-128~127
@刀锋93: 需要无符号类型的,可能需要自己做转换
@小草上飞飞: java里确实没有无符号byte,但io里read(),返回的范围就是0~255跟无符号byte范围一致,应该有所关联
@刀锋93: 这个是的,你需要做个转换,我看到有人写博客做转换
因为一byte是一个8位的二进制数,其中一位用来表示正负
嗯,最高一位不用来表示数值位,表示正负。怎么用的呢
@刀锋93: 1表示负数;0表示正数
学习了,记下
感谢各位回复,总结一下,1.在java中没有无符号byte,c++里有 2.byte由8位二进制0-1组成,比如000000001,最高位为符号位,0表示+正,1代表-负,总共2的7次方=128组合(0~127) 加负的那一半(-127~-0) 由于-0在计算机中无意义,因此将-0用-128来代替
– 刀锋93 3年前