早教吧 育儿知识 作业答案 考试题库 百科 知识分享

为什么byteb=(byte)300b=44int300=0000000000000000000000100101100\x09\x09\x09\x09符号位\x09\x09\x09数值位补码\x09\x09\x090\x09\x09\x090101100反码\x09\x09\x090\x09\x09\x090101011原码\x09\x09\x090\x09\x09\x09

题目详情
为什么byte b = (byte)300 b=44
int 300 =
00000000 00000000 0000001 00101100
\x09\x09\x09\x09符号位\x09\x09\x09数值位
补码 \x09 \x09\x09 0\x09\x09\x09 0101100
反码\x09\x09\x09 0\x09\x09\x09 0101011
原码\x09\x09\x09 0\x09\x09\x09 1010100
为什么答案不同,求解啊
▼优质解答
答案和解析
byte b = (byte)300;
这个句话将 int 转换为了 byte 。这样转换会丢失精度。
byte 只能读取 300 二进制形式的 后八位。
300 的二进制表示为 :100101100 。
后八位:00101100 ,对应十进制为:44 。