java的数据类型都是有符号的,byte在java中的范围是-128~127,而在c#中byte范围是0~255,一直不明白,为何java的数据类型没有无符号的类型,难道在java中不需要用无符号的类型?
很显然,C#中的byte型,在java中只能用short来取,这不明显浪费吗,还是java这样做是有其它的考虑?

解决方案 »

  1. 哦我想这是出于java简约的设计理念吧
      

  2. 刚看到一段关于java无符号数据类型的说法,还是不太明白:
    Java的设计者感到无符号整数是不必要的。具体地说,他们感到无符号(unsigned)概念主要被用来指定高位(high-orderbit)状态,它定义了当int表示一个数字时的符号。你将在第4章中看到,Java对高位含义的管理是不同的,它通过增加一个专门的“无符号右移”运算符来管理高位。这样,就不需要无符号整数了。
      

类似问题 »