Java中的基础类型有:byte、short、int、long、float、double、char和boolean。

它们可被分为四种类型,整型、浮点型、char型和boolean型。

整型:byte、short、int、long 分别占用1、2、4、8个字节的空间;

浮点型:long、float 分别占用4、8个字节;

char型:char 占用2个字节;

boolean型:boolean 占用1位。

在Java中不能直接使用二进制表示数字,可以使用8进制或者16进制来间接表示。这些数字类型在计算机中是如何表示的哪?通过下面的代码大家可以看个大概,具体为什么会这样大家可以看看我博客上“计算机中如何表示数字”的那几篇文章,其实这段代码主要是为了配合那几篇文章而来的。

至于char型在后面要单独介绍,因为Java中的char型是很独特的,它会占用两个字节的空间。boolean就用不着介绍了,但要记住和c不同,Java中的boolean型和整数没有关系,它们之间无法进行转换。

public class PrimitiveType {

public static void main(String[] args){

//java中整型数计算采用补码,可以通过十六进制或者八进制形式对整型数直接赋值,java中不能

//直接使用二进制数

//byte

byte maxByte=0x7f;

System.out.println("最大byte:0x7f  真值:"+maxByte);

byte minByte=(byte) 0x80;

System.out.println("最小byte:0x80  真值:"+minByte);

//short

short maxShort=0x7fff;

System.out.println("最大short:0x7fff  真值:"+maxShort);

short minShort=(short) 0x8000;

System.out.println("最小short:0x8000  真值:"+minShort);

//int

int maxInt=0x7fffffff;

System.out.println("最大int:0x7fffffff  真值:"+maxInt);

int minInt=0x80000000;

System.out.println("最小int:0x80000000  真值:"+minInt);

//long

System.out.println("最大long:0x7fffffffffffffff  真值:"+

Long.decode("0x7fffffffffffffff"));

System.out.println("最小long:0x8000000000000000  真值:"+

Long.decode("-0x8000000000000000"));

//算是一个bug吧,补码表示已经是带符号的数字了

//java中对小数直接量默认为double类型,定义float型需要在小数后面加上字母F,大小写不限

float f=0.1F;

double d=0.1D;//定义double,在小数后面也可以加D,大小写不限

//---------------------Java中浮点数计算都遵循IEEE754规范-------------------------//

//与整型数不同,浮点数在java中无法直接通过十六进制或者八进制形式定义

//最大正数(0 11111110 11111111111111111111111)=(0x7f7fffff)

float maxPositiveNumber=Float.intBitsToFloat(0x7f7fffff);

System.out.println("最大正单精度浮点数:0x7f7fffff  真值:"+maxPositiveNumber);

//最小正数(0 00000001 00000000000000000000000)=(0x00800000)

float minPositiveNumber=Float.intBitsToFloat(0x00800000);

System.out.println("最小正单精度浮点数:0x00800000  真值:"+minPositiveNumber);

//0,IEEE754 规定 E=0 M=0,则值为0,(0 00000000 00000000000000000000000)=(0x00000000)

float positoveZero=Float.intBitsToFloat(0x00000000);

System.out.println("正零:"+positoveZero);

float negativeZero=Float.intBitsToFloat(0x80000000);

System.out.println("负零:"+negativeZero);

//最大负数(1 00000001 00000000000000000000000)=(0x80800000)

float maxNegativeNumber=Float.intBitsToFloat(0x80800000);

System.out.println("最大负单精度浮点数:0x80800000  真值:"+maxNegativeNumber);

//最小负数(1 11111110 11111111111111111111111)=(0xff7fffff)

float minNegativeNumber=Float.intBitsToFloat(0xff7fffff);

System.out.println("最小负单精度浮点数:0xff7fffff  真值:"+minNegativeNumber);

//NaN,非数值,JDK API doc 上面也有提到

System.out.println("NaN:E=255 M<>0  例如:0x3f800001  运行结果:"+

Float.intBitsToFloat(0x7f800001));

//POSITIVE_INFINITY,正无穷大

System.out.println("POSITIVE_INFINITY:S=0 E=255 M=0  0x7f800000  运行结果:"+

Float.intBitsToFloat(0x7f800000));

//NEGATIVE_INFINITY,负无穷大

System.out.println("NEGATIVE_INFINITY:S=0 E=255 M=0  0xff800000  运行结果:"+

Float.intBitsToFloat(0xff800000));

//双精度浮点数同理可得

//下面对char型进行讨论

char[] codeUnits;

//基本多语言级别 basic multilingual plane

//ASC2 code

for(int i = 0 ; i < 128 ;i++){

codeUnits = Character.toChars(i);

if( codeUnits.length == 1 ){

System.out.println(i+" "+(char)i);

}

}

//汉字 '严'

char yan = '\u4e25';

codeUnits = Character.toChars(0x4e25);

System.out.printf("汉字:"+yan+"  代码点所占代码单元长度"+codeUnits.length+

" (0x%x) ,它属于基本多语言级别。\n",(int)codeUnits[0]);

//辅助字符 supplementary character

//代码点0x1d56b

codeUnits = Character.toChars(0x1d56b);

//判断代码单元的高低位

System.out.printf("代码点0x%x 在UTF-16表示中被分解为两个代码单元 0x%x 0x%x \n",

0x105600,(int)codeUnits[0],(int)codeUnits[1]);

System.out.printf("0x%x is HighSurrogate:"+Character.isHighSurrogate(codeUnits[0])+

"\n",(int)codeUnits[0]);

System.out.printf("0x%x is HighSurrogate:"+Character.isHighSurrogate(codeUnits[1])+

"\n",(int)codeUnits[1]);

System.out.printf("0x%x is LowSurrogate:"+Character.isLowSurrogate(codeUnits[0])+"\n",

(int)codeUnits[0]);

System.out.printf("0x%x is LowSurrogate:"+Character.isLowSurrogate(codeUnits[1])+"\n",

(int)codeUnits[1]);

}

}

java 二进制是什么类型_Java基础类型与其二进制表示相关推荐

  1. java key类型_Java 基础类型

    在Java中,基本的数据类型主要有8种: 1)int  4 字节(byte)  -2的31次方到2的31次方-1 2)short 2 字节(byte) -2的15次方到2的15次方-1 3)long ...

  2. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  3. java 判断类型_Java中类型判断的几种方式

    在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式.拉勾IT课小编为大家提供java种类型判断方式. instanceof instanceof是Ja ...

  4. java判断类型_Java中类型判断的几种方式

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  5. java的继承属于哪种类型_Java基础 继承

    二.继承 什么是继承关系:基于某个父类对对象的定义加以拓展,而产生新的子类的定,子类可以继承父类的某些属性,也可以增加原来父类所没有的定义,或者覆写父类中的某些特性. 从面向对象的角度分析,继承是一种 ...

  6. 类型的取值范围_Java基础类型取值范围,从基础的理解加深记忆

    Java有8种基础类型,但是你可能常常会忘记他们的取值范围.而这主要是由于你再依靠默记这些类型的取值范围,而不是从根本上理解. 举例 byte占1个字节,8给比特位,它的取值范围是:-128 ~ 12 ...

  7. 《大话Java性能优化》面向对象及基础类型相关部分

    3.1 面向对象及基础类型 3.1.1 采用Clone()方式创建对象 Java语言里面的所有类都默认继承自java.lang.Object类,在java.lang.Object类里面有一个clone ...

  8. 簇的局部变量中布尔类型_java基础2(变量、常量、数据类型)

    一.注释 (1)什么是注释?解释说明的文字(注释的内容不会被编译) (2)注释的作用 ①对代码的解释说明 ②便于后期维护 (3)注释的分类: ①单行注释 //单行注释 作用域:只在当前行有效 嵌套:可 ...

  9. java注解类型_Java注解类型

    本篇文章帮大家学习java注解类型,包含了Java注解类型使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 标记注解类型 标记注解类型是没有元素的注解类型,甚至没有默认值. ...

最新文章

  1. oracle update批量修改sql语句编写
  2. 【Java并发编程】一、为什么需要学习并发编程?
  3. 浏览器兼容--条件样式,选择符前缀,样式属性前缀
  4. 三星Galaxy S22系列零部件开始量产:搭载骁龙898 最早1月亮相
  5. java架构之-负载均衡-Ribbon 的使用
  6. Jmeter中的几种协议
  7. 电大计算机网络模拟题及答案,最新国家开放大学电大本科《计算机网络》期末题库及答案...
  8. SOAPUI 安装及破解
  9. excel 快速比对两列数据差异
  10. 手游加速器原理分析和代码实现
  11. ArcGIS裁剪shp时输出结果为空
  12. 关于华为手机无线调试
  13. 传奇手游服务器搭建_传奇手游架设服务器教程
  14. 「mt4软件」均线指标的应用方法
  15. 什么app可以绘制路线图_为什么大多数路线图都会不可避免地带来糟糕的结果
  16. 使用tftpd32.exe升级IPC
  17. 电脑开机太慢?这5个方法瞬间提升你的电脑速度
  18. 【HTML+CSS之小米商城页面图】
  19. Linux目录文件操作命令篇--(工作常用命令的深度使用,小白必收藏)
  20. 向上转型 (Upcasting)

热门文章

  1. win11系统正式版介绍
  2. ubuntu18.04解锁apt
  3. wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!
  4. flutter offset_用Flutter实现58App的首页
  5. java date eee_java将 Date原始格式EEE MMM dd HH:mm:ss Z yyyy转成指定格式
  6. mysql第二天无法连接_jdbc 连接mysql 第二天就连接不成功,什么原因?-问答-阿里云开发者社区-阿里云...
  7. 洛谷——P1548 [NOIP1997 普及组] 棋盘问题
  8. 伪元素选择器使用场景2-仿土豆网显示隐藏遮罩案例(CSS3)
  9. THREEJS - 模型的裁切消隐
  10. python能做哪些方面的准备_学习pyhton需要做哪些准备工作