关于int类型强制转换成byte类型值的问题

关于int类型强制转换成byte类型值的问题

在这里插入图片描述

超过byte类型取值范围的int类型数值,强转为byte类型时,输出的结果为int类型数值二进制码损失精度后的补码在转换成十进制

int类型变量所占内存大小为4字节,1字节又是8比特位(信息最小单位)

所以 int a=1000; 转换成二进制为:

00000000 00000000 00000011 11101000

又因为byte类型占内存大小是1字节所以int类型强转byte类型时会发生精度缺失,只保留后八位如下:

11101000(原码为能看得出大小的二进制码) 它的补码又为:10011000

(补码首位为代表符号 0为正 1为负)

所以1 0011000转换成十进制为24,加上前面的首位符号为-24,既输出结果为-24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值