您的位置:首页 > 职场人生

小小Java面试题(二)

2017-09-07 10:38 260 查看
题目:

byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少?

class Demo{
public static void main(String args[]){
//byte的范围是-128到127
//130不在范围内
byte b = 130;

//可以使用强制类型转换 byte b = (byte) 130;
//结果是  -126
}
}


分析过程:

我们要想知道结果是什么,就应该知道是如何进行计算的

而我们又知道计算机中数据的运算都是补码进行的

而要得到补码,首先要计算出数据的二进制

1.获取130的二进制

00000000 00000000 00000000 10000010

这是130的原码 也是反码 还是补码

2.截取操作 截成byte类型

10000010

这个是补码

3.已知补码求原码

符号位 数值位

补码: 1 0000010

反码: 1 0000001

原码: 1 1111110
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java