永发信息网

byte b=(byte)5.998 强行赋值后b的值是多少

答案:3  悬赏:60  手机版
解决时间 2021-12-02 00:22
  • 提问者网友:王者佥
  • 2021-12-01 21:09
byte b=(byte)5.998 强行赋值后b的值是多少
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-12-01 21:22
byte是整型中的一种,取值范围在-128~127之间,由于你所说的5.988含有小数,是浮点型。要将其转化为byte类型直接将末尾舍去就可以了,也就是b=5.
补充:如果你输入的数超过了byte的范围。则需按照以下几种方法进行求值
1、当强制转换一个大于的数a相应的结果为a-256;当强制转换一个小于-128的数b相应结果为b+256,最终使取值范围在-128~127之间。
2、用二进制来转换,求出补码,
数据在计算机内是以二进制存储的,要注意一点,计算机在存储某个数据时,是存储的数据的补码,说明一下补码与原码关系,正数补码与原码相同,负数补码是原码取反后加1。
3 、注意:int类型一般是4个字节,一个字节有8位,这样int型数据二进制的完整形式有32位,而byte表示一个字节,于是byte类型数据二进制的完整形式有8位
eg:129的原码是00000000 00000000 00000000 10000001 ,负数最高位取1,那么-129便是10000000 00000000 00000000 10000001 ,补码计算:取反为11111111 11111111 11111111 01111110(最高位是符号位,不参与取反)取反后末位加1为11111111 11111111 11111111 01111111,现在转换为byte,只有8位,于是只能保留低8位,前面24位丢去,得到01111111,这就对应着十进制的127.
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-12-01 22:16
真是很强的问题。8
  • 2楼网友:时间的尘埃
  • 2021-12-01 22:10
(byte)5.998 是5,(byte)5998是110
这种问题,写个测试类,main方法中System.out.println((byte)5.998)就知道了,不用提问吧追问byte的取值范围不是127~-128吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯