最近在笔试时,经常遇到一些与基本数据类型有关的问题,比如他们的长度
所占的字节数目啊,以及相应的为操作啊,所以,这次来做一下总结 ;
四种基本整数数据类型 : 所占字节数目按 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
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的数据类型可以分为两类:基本数据类型和引用数据类型。基本数据类型包括byte、short、int、long、float、double和char,它们代表了不同的数值类型。引用数据类型包括类、接口和数组,它们可以用来创建更复杂的...
由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→...
针对Java语言定义的4类共8种基本数据类型和常用的字符串型数据,其中的操作符分为:算术运算操作符、关系和条件操作符、位操作符、逻辑操作符和赋值操作符,对于特定的操作符进行运算的操作数的数据类型必有一定的...
在基本数据类型中,float和double都表示浮点型数据,而计算机计算采取的是对二进制的计算,所以会存在一定程度上的精度丢失问题。 BigDecimal类是一个大小数操作类,可以用来对超过16位有效位的数据进行精确的运算,...
java数据类型的划分一般分为两大类:基本数据类型和引用数据类型 错误: 编码GBK的不可映射字符 重要说明:关于数据类型的默认值问题 数据类型划分——浮点形 传统bug问题 数据类型划分——字符型 数据类型划分——...
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc...
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。下面通过本文给大家分享Java的按位操作符,感兴趣的朋友一起看看吧
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...
outputByDoWhile.java 用while循环随机输出数据 outputByWhile.java 用do~while循环随机输出数据 outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 ...
第2章概览了Java虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java...
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc...
一切都是对象 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虚拟机整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助。第3章详述如何将Java语言编写的程序转换为Java虚拟机指令集,...
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供一...
类和数据类型 类和子类 使用对象的优点 Java程序结构 Java的类库 Java应用程序 Java和Unicode码 本章:小结 参考资源 第二章:程序、数据、变量和计算 数据和变量 变量的命名 变量名和Unicode码 变量和类型 整型...
类和数据类型 类和子类 使用对象的优点 Java程序结构 Java的类库 Java应用程序 Java和Unicode码 本章:小结 参考资源 第二章:程序、数据、变量和计算 数据和变量 变量的命名 变量名和Unicode码 变量和类型 整型数据...
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
Java语言提供了丰富的基本数据类型,例如整型、字符型、浮点型和布尔型等。基本类型之间可以进行类型转换,这种类型转换包括自动类型转换和强制类型转换。 Java语言还提供了一系列功能丰富的运算符这些运算符包括...