将一个超出byte范围的值转为byte的方法

一个数在计算机中以二进制表示,叫做机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1.


原码:  就是符号位加上其值的绝对值,即用第一位表示符号,其余位表示值。


反码:  正数的反码就是其本身。负数的反码是在其原码的基础上,符号位不变,其余各个位取反。


补码:正数的补码就是其本身。负数在反码的基础上+1; 


基本数据类型byte 1个字节 8位 取值范围为-128~127;

基本数据类型int  4个字节  32位 取值范围为 -2^32/2~2^32/2-1;

如果130转为byte类型是多少?

1、130转为二进制为: 1 0 0 0 0 0 1 0;

2、因为130是int类型,所以在内存中表现的形式为:00000000  00000000  00000000  10000010

3、原码:1 0000010    原码变反码,最高位符号位不变,其他数值位1变0,0变1得反码
反码:1 1111101    反码变补码就是反码加1
补码;1 1111110(第一位为符号位,0表示正数,1表示负数

4、最终的看到的结果就是
1     1111110最高为是符号位不运算,数值为转化为十进制是64+32+16+8+4+2=126符号位负
所以为-126

即int类型的数值130强制转换为byte类型的值为-126。


在Win10下搜索计算器,在计算器中点击‘程序员’可以很方便地进行十六进制、十进制、八进制、二进制之间的转换。


快速计算原码的补码:原码的绝对值+补码的绝对值=256;如

原码为142 它的补码为-114;142+|-114|=256;


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值