类型转换怎么补位
byte转int 是补1还是补0 为什么 什么时候补1什么时候补0
类型转换怎么补位
答案:2 悬赏:50 手机版
解决时间 2021-01-03 16:06
- 提问者网友:轻浮
- 2021-01-03 08:25
最佳答案
- 五星知识达人网友:患得患失的劫
- 2021-01-03 09:36
如果你把byte的值理解成0到255(即无符号数),那么转成int直接高8位全补0。比如:
byte: 10001010(B) = 138(D)
int : 0000000010001010(B)
如果把byte理解成-128到127就麻烦些,因为此时涉及原码、反码、补码的概念,具体请参考计算机基础的相关资料。
简单的说,此时如果byte的最高位是1,则int高8位全补1;如果是0,就全补0。比如:
byte: 10001010(B) = -118(D)
int : 1111111110001010(B)
byte: 01100011(B) = 99(D)
int : 0000000001100011(B)
byte: 10001010(B) = 138(D)
int : 0000000010001010(B)
如果把byte理解成-128到127就麻烦些,因为此时涉及原码、反码、补码的概念,具体请参考计算机基础的相关资料。
简单的说,此时如果byte的最高位是1,则int高8位全补1;如果是0,就全补0。比如:
byte: 10001010(B) = -118(D)
int : 1111111110001010(B)
byte: 01100011(B) = 99(D)
int : 0000000001100011(B)
全部回答
- 1楼网友:雪起风沙痕
- 2021-01-03 11:16
你好:试试下面的方法
public static void main(string args[]){
string s = "1010
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯