public static void main( String[] args ) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
======================================================================
整数二进制
补码:
符号位是0(正数)他的补码就是本身。
符号位是1(负数)保持符号位不变,其余各位取反然后加一。
例如:
-7的二进制表示 -->1 0000111
符号位不变 -->1 0000111
其余各位取反然后加一 -->1 1111001
计算机加减法是基于补码完成计算的,减法也转换成加法计算。
8-7的二进制计算为:
0 0001000
+1 1111001
11 0000001
最高位溢出去掉,结果是1。
正数的原、反、补码都是它自己。
负数的原码最高位是1,即代表负;
反码就是后七位按位取反;
补码就是反码加1。
数据在内存中始终是以二进制形式存放的。
系统在表示一个字符型数据时,并不是将字符本身的形状存入内存,而只是将字符的ASCII码存入内存。
在内存中所有的数据又是以二进制的形式存放的。所以上面的例子中'x'和'y'在内存中的表示如下:
'x'、'y'的ASCII码为120、121。而120、121的二进制形式为1111000、1111001。
所以'a'、'b'在内存中的表示为 1111000、1111001。
数值是以补码表示的。
数值是以补码的方式参与运算,所以数值在内存中以补码的方式表示。
关于原码1000 0000,表示的是-0,还是-128呢?(答案是-128而不是-0)
看看原码的概念吧:正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值
0是负数吗?0既不是正数也不是负数,那么它的符号位到底是0还是1呢?(0的符号位为0,不能为1)
看看负数补码的公式:负数的补码=10000 0000(模)-数的绝对值
浮点类型二进制
float的组成是:1位符号位+8位指数(q)+23位底数(b),其解释出来的形式是b^q,由于指数q是8位有符号整数,范围是-128~127,23位的底数(无符号)最大值是2^23,算上指数的话最大可以表示到2^23^127。
由于float类型是一个幂计算式,所以很多时候并不能表达一个精确值,例如0.9,0.9在内存中无法用二进制准确表示,所以1-0.9为0.100000024,如果进行反复计算将会导致非常大的误差。
相关推荐
### Java的二进制操作 在Java编程语言中,对二进制文件的操作是非常常见的需求之一,尤其是在处理图像、音频等非文本数据时。Java的标准库`java.io`提供了丰富的API来支持这些操作,其中`OutputStream`及其子类是...
### Java读取二进制文件知识点详解 #### 一、二进制文件基本概念 在计算机科学中,二进制文件是由一系列字节组成的文件,这些字节可以表示任何类型的数据,包括文本、图像、音频等。二进制文件与文本文件的主要区别...
"Java读取二进制文件实例详解" 本文主要介绍了利用Java读取二进制文件的相关知识点,通过示例代码详细介绍了读取二进制文件的实现方法,对大家的学习或者使用Java具有一定的参考学习价值。 一、Java读取二进制文件...
通过上述分析可以看出,给定的Java代码示例有效地实现了汉字从二进制到十六进制的转换,以及从十六进制回到二进制的逆过程。这对于理解字符编码、数据表示和转换等概念非常有帮助。同时,这些方法也可以应用于更广泛...
**SFTP工具与二进制传输详解** SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,它基于SSH(Secure Shell)协议,用于在不同网络之间安全地传输文件。SFTP不仅提供文件传输功能,还确保了数据的...
Java 数据类型与二进制详细介绍 Java 数据类型是 Java 语言的基础,它们决定了变量的类型和占用内存的大小。在 Java 中,基本数据类型可以分为四类:整数类型、小数(浮点数)类型、布尔类型和字符类型。 整数类型...
Java作为一种广泛使用的编程语言,提供了多种内置的方法来实现不同进制之间的转换,比如从十进制转换到二进制、八进制或十六进制,以及反向转换。 #### 二、Java中的进制转换方法 ##### 1. 十进制转其他进制 Java...
《汉字转换二进制小工具详解》 在数字化的信息时代,数据的表示和处理成为日常工作中不可或缺的一部分。其中,二进制作为计算机的基础语言,扮演着至关重要的角色。本文将详细解析一款名为“汉字转换二进制小工具”...
### Java随机生成十六进制颜色知识点详解 #### 一、十六进制颜色代码的基本概念 在Web开发中,颜色常以十六进制形式表示。一个完整的十六进制颜色代码由六个字符组成,其中前两个字符表示红色(Red)的强度,中间...
在Java开发中,msgpack工具库提供了对这种二进制序列化和反序列化的支持,尤其适用于大数据处理、网络通信以及分布式系统中的数据交换。 **序列化与反序列化** 序列化是将对象转换为可存储或可传输的形式的过程,...
### Tomcat二进制版本安装知识点详解 #### Tomcat基础信息 Tomcat是Apache软件基金会下属的Jakarta项目中的一个开源的轻量级Web应用服务器,主要用于部署和运行基于Java的Web应用程序。它支持最新的Servlet和Java...
Java 字符串转换二进制码方法详解 Java 字符串转换二进制码方法是 Java 语言中的一种常见操作,通过本文,我们将详细介绍 Java 字符串转换二进制码的方法,并提供相应的代码实现。 一、字符串转换二进制码 在 ...
### Java中的进制转换知识点详解 #### 一、引言 在Java开发过程中,进制转换是一项基础且实用的功能,特别是在处理与数字相关的算法题目时更是如此。无论是笔试还是面试,掌握进制转换的方法都是非常重要的。本文...
### Java-C语言进制转换与输出格式详解 #### 一、进制转换基本概念 在计算机科学中,数据表示和处理通常涉及到不同的数值系统或进制。常见的进制包括二进制、八进制、十进制和十六进制。进制转换是在这些不同的...
Java二进制运算基础知识点详解是Java编程语言中的一些基本概念,它们是理解Java编程语言的基础。下面是对Java二进制运算基础知识点的详细解释。 一、位运算 位运算是Java语言中的一种基本操作,它可以对二进制数...
### MySQL与Java数据类型对应详解 #### 概述 在进行数据库操作时,尤其是在使用Java进行MySQL数据库开发的过程中,正确地映射数据类型是至关重要的一步。本文将详细介绍MySQL中的各种数据类型及其在Java中的对应...
**OpenJDK 二进制安装详解** OpenJDK(Open Source Java Development Kit)是Java开发工具包的一个开源实现,它提供了运行Java应用程序所需的编译器、类库和运行时环境。OpenJDK 18是Java SE的一个新版本,带来了...
本篇文章基于一个Java类`StrBinaryTurn`,该类提供了几个方法来实现字符串与二进制之间的转换。这些方法包括: 1. `StrToBool`: 将Unicode字符串转换为布尔型数组。 2. `BoolToStr`: 将布尔型数组转换回Unicode字符...