您的位置:首页 > 数码常识数码常识
java二进制数怎么表示(java中的二进制)
2025-05-13人已围观
java二进制数怎么表示(java中的二进制)
概述Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速。
java中的二进制概述
Java二进制表示法
首先了解下二进制,二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制。
二进制就是只有0、1两个值表示的数,规则是逢二进一。
整数表示法
Java中使用补码来表示负数,具体就是除符号位之外,剩余位取反加1,符号位不变还是1(符号位0-正数,1-负数)
Java中二进制符号位也不是固定的,在Byte类型的数值中,由于其为一个字节即八位,取值范围为-128到127,其符号位就是第8位二进制位。
如下所示:
Short型数为两个字节16位数值,其符号位为第16位:
Integer为32位,Long为64位,表示方式如上,Integer第32位为符号位,Long型第64位为符号位。
浮点数表示法
Java中的浮点数大多数都无法精确表示,为什么呢?因为使用二进制来表示小数一样存在和十进制表示小数一样的问题,存在无限循环的小数和无限不循环的小数,比如十进制的1/3,十进制为0.333...无限个3,二进制表示同样会有这个问题,二进制表示0.1、0.2、0.3、0.4等都不能精确表示,0.5可以表示为2^(-1),可以精确表示,可见只有可以精确的使用科学计数法表示的二进制小数才能精确表示,其他的一律无法精确表示。
Java中使用32位的float和64位的double表示浮点小数。
进制转化:
十进制转二进制,整数部分除以2,整除为0,否则为1,直到结果为1,然后从后串到前的结果就是其二进制值
小数部分的二进制化,取小数部分乘以2,结果大于等于1,取1,否则取0,再取小数部分乘以2,取值,直到结果为0或者循环
Java二进制运算符与:&
扩展:二进制中的1的与操作具有保留原值的效果,任何值(0,1)和1进行与操作结果都不会变。这一点在HashMap中得以使用。
或:|
扩展:二进制中的0的或操作也具有保留原值的效果,任何值(0,1)和0进行或操作结果都不会变。
非:~
异或:^
扩展:二进制中的0的异或操作具有保留原值的效果,1的异或操作具有取反的效果。
左移:<<
右移:>>
无符号右移:>>>
二进制操作
参考例子中的操作:
(结束)
上面就是小居数码小编今天给大家介绍的关于(java中的二进制)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
java程序员必备软件和工具(最常用的java开发工具)
会c语言学java难吗(c语言与java难度)
java用什么开发工具比较好(提高java开发效率)
小白如何快速入门JavaScript(javascript教程)
155030
概述Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速。
java中的二进制概述
Java二进制表示法
首先了解下二进制,二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制。
二进制就是只有0、1两个值表示的数,规则是逢二进一。
整数表示法
Java中使用补码来表示负数,具体就是除符号位之外,剩余位取反加1,符号位不变还是1(符号位0-正数,1-负数)
Java中二进制符号位也不是固定的,在Byte类型的数值中,由于其为一个字节即八位,取值范围为-128到127,其符号位就是第8位二进制位。
如下所示:
Short型数为两个字节16位数值,其符号位为第16位:
Integer为32位,Long为64位,表示方式如上,Integer第32位为符号位,Long型第64位为符号位。
浮点数表示法
Java中的浮点数大多数都无法精确表示,为什么呢?因为使用二进制来表示小数一样存在和十进制表示小数一样的问题,存在无限循环的小数和无限不循环的小数,比如十进制的1/3,十进制为0.333...无限个3,二进制表示同样会有这个问题,二进制表示0.1、0.2、0.3、0.4等都不能精确表示,0.5可以表示为2^(-1),可以精确表示,可见只有可以精确的使用科学计数法表示的二进制小数才能精确表示,其他的一律无法精确表示。
Java中使用32位的float和64位的double表示浮点小数。
进制转化:
十进制转二进制,整数部分除以2,整除为0,否则为1,直到结果为1,然后从后串到前的结果就是其二进制值
小数部分的二进制化,取小数部分乘以2,结果大于等于1,取1,否则取0,再取小数部分乘以2,取值,直到结果为0或者循环
Java二进制运算符与:&
扩展:二进制中的1的与操作具有保留原值的效果,任何值(0,1)和1进行与操作结果都不会变。这一点在HashMap中得以使用。
或:|
扩展:二进制中的0的或操作也具有保留原值的效果,任何值(0,1)和0进行或操作结果都不会变。
非:~
异或:^
扩展:二进制中的0的异或操作具有保留原值的效果,1的异或操作具有取反的效果。
左移:<<
右移:>>
无符号右移:>>>
二进制操作
参考例子中的操作:
(结束)
上面就是小居数码小编今天给大家介绍的关于(java中的二进制)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。
94%的朋友还想知道的:
java程序员必备软件和工具(最常用的java开发工具)
会c语言学java难吗(c语言与java难度)
java用什么开发工具比较好(提高java开发效率)
小白如何快速入门JavaScript(javascript教程)
155030
很赞哦! ()