首页 > 代码库 > java中整数类型的2进制表示
java中整数类型的2进制表示
java中的4种整数类型:byte,short,int,long均采用补码表示。
如下图右边所示
在java中对二进制数没有“字面”表示方法。十六进制可以用OX或者Ox指示,八进制可以用O指示。
下面的代码可以输出byte类型的数据的2进制表示形式:
public class Test { public static void main(String[] args) { byte a = -128; test(a); } public static void test(byte m){ for(int i=7;i>=0;i--) { if(((1<<i)&m)!=0) System.out.print("1"); else System.out.print("0"); } System.out.println(); } }
经测试
byte a = -128,
二进制表示形式为:1000 0000
byte a = -1,
二进制表示形式为:1111 1111
符合上图右边补码表示法。
同理测试short,int,long
故java的整数类型采用的是补码表示法。
在程序里面插入“字面值”,编译器通常能准确知道要生成什么样的类型。但是有些时候,对于类型却是暧昧不清的。若发生这种情况,必须对编译器加以适当的“指导”。方法是用字面值关联的字符形式加入一些额外的信息。
字面值后面的尾随字符可以指导编译器生成具体类型,若为大写或小写L,代表long;若为大写或小写F,代表float;若为大写或小写D,代表double。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。