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。

java中整数类型的2进制表示,布布扣,bubuko.com

时间: 2024-08-14 07:22:24

java中整数类型的2进制表示的相关文章

Java中byte与(16进制)字符串的互相转换

java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当

java中整数类型(short int lang)的存储方式

在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1.基本类型:short 二进制位数:16包装类:java.lang.Short最小值:Short.MIN_VALUE=-32768 (-2的15此方)最大值:Short.MAX_VALUE=32767 (2的15次方-1) 2.基本类型:int 二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALU

(转)Java中String类型的参数传递问题

这篇文章主要介绍了简单谈谈Java中String类型的参数传递问题的相关资料,需要的朋友可以参考下 提要:本文从实现原理的角度上阐述和剖析了:在Java语言中,以 String 作为类型的变量在作为方法参数时所表现出的“非对象”的特性. 一.最开始的示例 写代码最重要的就是实践,不经过反复试验而得出的说辞只能说是凭空遐想罢了.所以,在本文中首先以一个简单示例来抛出核心话题: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public clas

Java中值类型与引用类型

JAVA中值类型和引用类型的不同? 1.定义 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变:值类型表示复制一个当前变量传给方法,当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用:引用类型是存折,要用还得先去银行取现. 2.分类 (1)值类型 值类型也就是基本数据类型 基本数据类型常被称为四类八种. 四类:1.整型 2.浮点型 3.字符型4.逻辑

Java中String类型详解

这篇博客是我一直想总结的,这两天一直比较忙,先上传下照片吧,过后有时间再弄成正常的. 本文主要是对Java中String类型的总结,包括其在JVM中是怎么存储的...

Java中double类型的数据精确到小数点后两位

Java中double类型的数据精确到小数点后两位 多余位四舍五入,四种方法 一: double f = 111231.5585;BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); 二: new java.text.DecimalFormat("#.00").format(3.1415926) 三: double d = 3.1415926

java中String类型转换方法

integer to String : int i = 42;String str = Integer.toString(i);orString str = "" + idouble to String :String str = Double.toString(i);long to String :String str = Long.toString(l);float to String :String str = Float.toString(f);String to intege

java中基本类型封装对象所占内存的大小(转)

这是一个程序,java中没有现成的sizeof的实现,原因主要是java中的基本数据类型的大小都是固定的,所以看上去没有必要用sizeof这个关键字. 实现的想法是这样的:java.lang.Runtime类中有一些简单的能涉及到内存管理的函数: Every Java application has a single instance of class Runtime that allows the application to interface with the environment in

java中基本类型与装箱基本类型“==”比较出现的几种情况

java中基本类型与装箱基本类型"=="比较出现的几种情况 java有一个类型系统有两部分组成,包含基本类型(primitive),例如:int.double等,还有引用类型(reference type),例如:String.List.每个基本类型都有一个对应的引用类型,称为装箱基本类型(boxed promitive).装箱基本类型中对应于int.double的是Integer.Double. Java 1.5发行版本中增加了自动装箱和自动拆箱,自动装箱和自动拆箱就是我们所知道的&