千家信息网

java二进制的相关基础知识分享

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"java二进制的相关基础知识分享",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java二进制的相关基础知识分享"吧!说明任何东西都有规范
千家信息网最后更新 2026年10月31日java二进制的相关基础知识分享

本篇内容主要讲解"java二进制的相关基础知识分享",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java二进制的相关基础知识分享"吧!

说明

任何东西都有规范,提到JAVA就会提到2个规范,JAVA语言规范、JVM规范。JAVA语言规范主要定义JAVA的语法、变量、类型、文法等等,JVM规范主要定义Class文件类型、运行时数据、帧栈、虚拟机的启动、虚拟机的指令集等等。

  • JAVA语言规范主要定义什么是JAVA语言。

  • JVM规范主要定义JVM内部实现,二进制class文件和JVM指令集等。

规范中数字的内部表示和存储

JAVA八种基本数据类型:

  • 整形:byte,short,int,long

  • 浮点型:float,double

  • 布尔型:boolean

  • 字符型:char

  • 数据类型 所占位数

数据类型所占位数
int32bit
short16bit
long64bit
byte8bit
char16bit
float32bit
double64bit
boolean1bit

备注:1字节=8位(1 byte = 8bit)

整数的表示

  • 源码:第一位为符号位(0表示正数,1表示负数)。

  • 反码:符号位不动,原码取反。

  • 负数补码:符号位不动,反码加1。

  • 正数补码:和源码相同。

备注:补码的好处:

使用补码可以没有任何歧义的表示0。

补码可以很好的参与二进制的运算,补码相加符号位参与运算,这样就简单很多了。

浮点数表示

在上图中,我们了解到Float与Double都是支持IEEE 754

我们以float来说明:

IEEE745单精度浮点格式共32位,包含三个构成字段:23位小数f,8位偏置指数e,1位符号s。将这些字段连续存放在一个32位字里,并对其进行编码。其中0:22位包含23位的小数f; 23:30位包含8位指数e;第31位包含符号s。

一个实数V在IEEE 754标准中可以用V=(-1)s×M×2E 的形式表示,说明如下:

  • 符号s(sign)决定实数是正数(s=0)还是负数(s=1),对数值0的符号位特殊处理。

  • 有效数字M(significand)是二进制小数,M的取值范围在1≤M<2或0≤M<1。

  • 指数E(exponent)是2的幂,它的作用是对浮点数加权。

符号位指数位小数位
1位8位23位

例如根据IEEE745,计算11000001000100000000000000000000的单精度浮点的值。

解题:

11000001000100000000000000000000
符号位指数尾数由于指数不是全部为0 所以小数位附加1
1100000101.00100000000000000000000
-12^(130-127)(2^0 + 2^-3)

结论:-1 * (2^0 + 2^-3) * 2^(130-127) =-9

同样,你也可以验证一下十进制浮点数0.1的二进制形式是否正确,你会发现,0.1不能表示为有限个二进制位,因此在内存中的表示是舍入(rounding)以后的结果,即 0x3dcccccd, 十进制为0.100000001, 误差0.000000001由此产生了。

进制的概念

我们常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。

二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。

位运算符

按位与(&)

两位全为1,结果才为1:

0&0=0;0&1=0;1&0=0;1&1=1;

用法:

  • 清零:如果想要一个单位清零,那么使其全部二进制为0,只要与一个各位都为零的数值想与,结果为零。

  • 取一个数中指定位:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行"与运算"可以得到X中的指定位。

例如:设X=1010 1110,取X的低4位,用X & 0000 1111 = 0000 1110 就可以得到。

按位或(|)

只要有一个为1,结果就为1:

0|0=0;0|1=1;1|0=1;1|1=1;

用法:常用来对一个数据的某些位置1;找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。

例如:将X=1010 0000 的低四位置1,用X | 0000 1111 =1010 1111 就可以得到。

异或运算(^)
*两个相应位为"异"(值不同),则该位结果为1,否则为0: *

0^0=0;0^1=1;1^0=1;1^1=0;

用法:

  • 使特定位翻转:找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或就可以得到; 例如:X=1010 1110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001就可以得到

  • 与0相异或,保留原值 例如:X ^ 0000 0000 = 1010 1110

  • 两个变量交换值的方法: 1、借助第三个变量来实现: C=A; A=B; B=C; 2、 利用加减法实现两个变量的交换:A=A+B; B=A-B;A=A-B; 3、用位异或运算来实现:利用一个数异或本身等于0和异或运算符合交换律 例如:A = A ^ B; B = A ^ B; A = A ^ B;

取反运算(~)

对于一个二进制数按位取反,即将0变1,1变0: ~1=0; ~0=1;

左移运算(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制丢弃,右边补零) 2<<1 = 4 : 10 <<1 =100=4

若左移时舍弃的高位不包括1,则每左移一位,相当于该数乘以2。 -14(二进制:1111 0010)<< 2= (1100 1000) (高位包括1,不符合规则)

右移运算(>>)

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。操作数每右移一位,相当于该数除以2.

左补0 or 补1 得看被移数是正还是负。

例:4 >> 2 = 1

例:-14(1111 0010) >> 2 = -4 (1111 1100 )

无符号右移运算(>>>)

各个位向右移指定的位数。右移后左边突出的位用零来填充。移出右边的位被丢弃

各个位向右移指定的位数。右移后左边突出的位用零来填充。移出右边的位被丢弃

例如: -14>>>2

即-14(1111 1111 1111 1111 1111 1111 1111 0010)>>> 2

=(0011 1111 1111 1111 1111 1111 1111 1100)

= 1073741820

说明:

  • 0x80000000是数的十六进制表示,转成二进制表示为10000000000000000000000000000000

  • 运算的优先级,移位运算高于逻辑运算,>>>高于&

  • 位逻辑与运算 1&1 = 1 ,0&1 = 0

  • >>>无符号右移,移出部分舍弃,左边位补0;

到此,相信大家对"java二进制的相关基础知识分享"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

二进制 运算 符号 个数 补码 十进制 小数 指数 数据 类型 结果 十进 变量 右边 正数 语言 负数 基础 基础知识 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 科技股互联网 中资互联网科技 互联网金融与金融科技 易互联网科技有限公司 极限挑战互联网科技 深圳艾佳互联网科技 山东吉时兔互联网科技有限公司 广州恒生互联网科技有限 宁夏科技产业互联网案例 湖南一路畅行互联网科技 企晟互联网信息科技有限公司 西安小鹰速贷互联网科技有限公司 中和天地互联网科技有限公司 互联网科技圈年度人物 张召忠谈中国互联网科技 神州科技互联网有限公司 易租星互联网科技有限公司 山东蛋芒互联网科技有限公司 平安好医生打造互联网科技医疗 上海睿民互联网科技有限公司 广东猪兼强互联网科技有限公司 万达互联网科技 成都玖崟互联网科技有限公司乐商圈怎么样 晓花互联网科技有限公司网址 高科技互联网套路 互联网科技年终奖 35岁以上互联网科技行业 互联网硬科技公司 广东猫王互联网科技有限公司电话
0