对Java语言的byte类型变量进行无符号提升

提升  指将范围较窄的类型转化为范围更宽的类型。

Java中所有数值类型(byte, short, int, long)都是有符号类型,遵循符号扩展的原则,即使用最高bit填充提升后的bit,这样可以保证提升后值不变。

1 byte b = -0x5c;
2 short s = b; // -0x5c 
3 int i = b; // -0x5c

但是byte往往用来表示字节,此时它的值应当是无符号的,如果提升时保持无符号的特性,就不能进行类型转化,而要用位操作

byte b = -0x5c; // 0xa4
int i = b & 0x0ff; // 0xa4

 

posted @ 2017-09-01 15:12  Haart  阅读(300)  评论(0编辑  收藏  举报