`

Java基本数据类型 及 位操作

 
阅读更多

最近在笔试时,经常遇到一些与基本数据类型有关的问题,比如他们的长度

所占的字节数目啊,以及相应的为操作啊,所以,这次来做一下总结 ;

 

  四种基本整数数据类型 : 所占字节数目按 2^n增长..... 注意,计算计数范围时,最高位表示的符号位!

   注意 : 如果超过了他们范围,怎么办,见例子!

  

  剩下的就是 float , double , char , blooean !

 容量小的类型自动转换为大的类型,数据类型按容量大小排序为:

  byte, short, char < int < long <float < double

 

import java.util.Arrays;


public class ByteTest{

	public static void main(String[] args) {
		String s = "abcd";
		byte[] bytes = s.getBytes();
		System.out.println("s转换成字节数组  " + Arrays.toString(bytes));
		System.out.println("二进制表示  "  + Integer.toBinaryString(123));
		System.out.println("十六进制表示   " + Integer.toHexString(12));
		s = "";
		for (int i = 0 ; i < bytes.length ; i++) {
			s += Integer.toBinaryString(bytes[i]);
		}
		System.out.println("s 装换成 bit  " + s);
		
		String str = "abcd";
		char c = str.charAt(0);
		int tmp = c;
		c = (char) (tmp + 1); 
		System.out.println(c + " " + tmp);
		System.out.println("负数的二进制表示 " + Integer.toBinaryString(-1));	
	}

}

 

输出 :

  

s转换成字节数组  [97, 98, 99, 100]
二进制表示  1111011
十六进制表示   c
s 装换成 bit  1100001110001011000111100100
b 97
超过byte的范围后  -126
超过byte的范围后  -128
负数的二进制表示 11111111111111111111111111111111

 

 

负数的二进制表示 怎么计算的?

  负数的二进制表示就为他的补码;

  那么补码怎么求了,我们知道正数的原码, 补码 ,反码都是一样;

  求负数的二进制表示,首先就得由相应正数的原码 按位取反 得到 反码 , 然后 反码 最后一位 +1 得到的结果就为补码,也就是它的二进制表示!

  不如说,上面的 - 1 :

1、先取1的原码:00000000 00000000 00000000 00000001

2、得反码: 11111111 11111111 11111111 11111110

3、得补码: 11111111 11111111 11111111 11111111

 详情可参考这篇文章 : http://www.cnblogs.com/aspnet2008/archive/2009/04/29/1446471.html

 

位操作

   Java提供的位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。

   这篇博文不错 : http://blog.csdn.net/xiaochunyong/article/details/7748713

   

分享到:
评论

相关推荐

    Java基础知识之数据类型和操作符

    Java的数据类型可以分为两类:基本数据类型和引用数据类型。基本数据类型包括byte、short、int、long、float、double和char,它们代表了不同的数值类型。引用数据类型包括类、接口和数组,它们可以用来创建更复杂的...

    Java中各个数据类型之间的转换

    由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→...

    java数据类型与运算符间的运算

    针对Java语言定义的4类共8种基本数据类型和常用的字符串型数据,其中的操作符分为:算术运算操作符、关系和条件操作符、位操作符、逻辑操作符和赋值操作符,对于特定的操作符进行运算的操作数的数据类型必有一定的...

    Java-关于基本数据类型中浮点数计算产生的精度问题

    在基本数据类型中,float和double都表示浮点型数据,而计算机计算采取的是对二进制的计算,所以会存在一定程度上的精度丢失问题。 BigDecimal类是一个大小数操作类,可以用来对超过16位有效位的数据进行精确的运算,...

    Java编程语言的基础知识作了一个较为全面的汇总-供大家学习研究参考

    java数据类型的划分一般分为两大类:基本数据类型和引用数据类型 错误: 编码GBK的不可映射字符 重要说明:关于数据类型的默认值问题 数据类型划分——浮点形 传统bug问题 数据类型划分——字符型 数据类型划分——...

    社会上常用的Java试题库

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc...

    JAVA_API1.6文档(中文)

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    详解Java的按位操作符

    Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。下面通过本文给大家分享Java的按位操作符,感兴趣的朋友一起看看吧

    Java 1.6 API 中文 New

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

    Java开发技术大全(500个源代码).

    outputByDoWhile.java 用while循环随机输出数据 outputByWhile.java 用do~while循环随机输出数据 outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 ...

    Java虚拟机规范(Java SE 7)中文版

    第2章概览了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java...

    java面试题大全--java基础,struts,spring,ejb等

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc...

    Thinking in java4(中文高清版)-java的'圣经'

    一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 ...

    【带书签】Java虚拟机规范(Java SE 7).pdf

    了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,...

    java api最新7.0

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...

    java2入门经典.part01

    类和数据类型 类和子类 使用对象的优点 Java程序结构 Java的类库 Java应用程序 Java和Unicode码 本章:小结 参考资源 第二章:程序、数据、变量和计算 数据和变量 变量的命名 变量名和Unicode码 变量和类型 整型...

    Java2入门经典.rar

    类和数据类型 类和子类 使用对象的优点 Java程序结构 Java的类库 Java应用程序 Java和Unicode码 本章:小结 参考资源 第二章:程序、数据、变量和计算 数据和变量 变量的命名 变量名和Unicode码 变量和类型 整型数据...

    JavaAPI1.6中文chm文档 part1

    javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...

    疯狂java讲义 第二版(2/17)

    Java语言提供了丰富的基本数据类型,例如整型、字符型、浮点型和布尔型等。基本类型之间可以进行类型转换,这种类型转换包括自动类型转换和强制类型转换。 Java语言还提供了一系列功能丰富的运算符这些运算符包括...

Global site tag (gtag.js) - Google Analytics