java中什么是二进制(跪求“java中二进制怎么表示”)
其实java中什么是二进制的问题并不复杂,但是又很多的朋友都不太了解跪求“java中二进制怎么表示”,因此呢,今天小编就来为大家分享java中什么是二进制的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java中二进制怎么表示
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
1、Java中定义两个数,然后分别打印出它们的二进制表示:
System.out.println("Java二进制7:"+Integer.toBinaryString(7));
System.out.println("Java二进制-7:"+Integer.toBinaryString(-7));
输出:
Java二进制7:
111
Java二进制-7:
11111111111111111111111111111001
可以看到Java中对于数的表示属于有符号的,那么这个是怎么来的?
7好办,直接是111
-7转化二进制的过程:
(1)把-7转化成7,二进制是
111
(2)Java中对于不满32位的int二进制自动补齐,所以变成了
(29个0)111
(3)然后取反
(29个1)000
(4)然后加1
(29个1)001
这就是-7的整个转化过程,那么现在有一个问题,如果有一个文本文件,每一行有八位二进制,表示的范围是(0~255),也就是用一个字节表示的无符号整数,如果现在要把这些二进制转化成整数存到文件里应该怎么做?
文件:
line1
11111110
(254)
line2
00000000
(0)
假设用Java读进了第一行,那么直接打印出来的值是-2,不符合要求,这时让-2变254有两种办法:
(1)用Java自带的方法,Byte.toUnsignedInt((byte)
-2)(ps.-2的二进制表示就是line1),这样打印出来的就是254了
System.out.println(Byte.toUnsignedInt((byte)-2));
输出:254
第二种方法的原理:
Java中-2的二进制表示:11111111111111111111111111111110(这个二进制的后八位就是line1,可以直接打印的话Java把其当做了负数
-2)
Java中255的二进制表示:00000000000000000000000011111111(24个‘0’,8个‘1’)
做与后变为:00000000000000000000000011111110
这样做与后表示的数就是正数了
254。可以想一下,假设每一行用2个字节表示一个无符号数,那么可以把每一行变成正整数用方法2怎么做?
2.Java中的>>和>>>
'>>'
算术右移,向右移左边补符号位
'>>>'
逻辑右移,向右移左边补0
System.out.println("Java二进制-7:"+Integer.toBinaryString(-7));
System.out.println("-7>>2:"+Integer.toBinaryString(-7>>2));
System.out.println("-7>>>2:"+Integer.toBinaryString(-7>>>2));输出:
Java二进制-7: 11111111111111111111111111111001
-7>>2: 11111111111111111111111111111110
-7>>>2: 111111111111111111111111111110//正常应该这样(00)111111111111111111111111111110左边的两个0不显示
Java里,,什么是二进制 什么是base64他们有什么区别
二进制就是逢二进一,而我们习惯的是十进制,就是逢十进一,其实就是平时计数的时候用的符号不一样,十进制是(0~9)10个符号,而二进制只有0和1两个,因为当超过1的时候就会产生进位,比如二进制加法1+1=10(注意不要和十进制的十混淆,这个是二进制一零,等于十进制的二)。
至于base64就是一套加密算法呗,有点类似于数学的某个公式,你把你的数字输入到这个公式就会产生另外一个数字,加密就是把你的信息按照一定的方法转换成别的信息,如果不知道解密方法,是无法理解信息的内容的,大概就是这样的意思。还不理解请追问
“Java不显式支持二进制”是什么意思
确实,在Java早期的版本(Java 1.0至1.6)中,并没有直接支持二进制字面值的语法,这也就是说,你不能使用类似于0b101010这样的二进制字面值来表示整数。不过,在较新的版本(Java 1.7及以上)中,Java增加了对二进制字面值(即以 0b或 0B开头的数字字符串)的支持,这样你就可以使用类似于0b101010这样的二进制字面值来表示整数了。
在早期的 Java版本中,如果你想要使用二进制字面值来表示整数,通常的做法是使用八进制或十六进制来代替,然后再将它们转换为二进制表示。例如,如果你想要表示二进制数101010,你可以使用十六进制数0x2A来代替,二进制数10100011001可以使用八进制数05061来代替,然后再将它们转换为二进制表示就可以了。
在 Java 1.7及以上的版本中,可以使用类似于以下的语法来定义二进制数:
Copy code
int b1= 0b101010;// 42
byte b2= 0b1101;// 13
这对于进行位操作等操作非常方便。需要注意的是,前导的 0b或 0B是必须的,否则编译器将无法区分数值和其他字符串。
总的来说,Java在早期的版本中不支持二进制字面值,但是在较新的版本中增加了该功能,使得使用二进制字面值来表示整数变得更为方便和直观。
跪求“java中二进制怎么表示”
java中二进制的表示:
1、Java中定义两个数,然后分别打印出它们的二进制表示(例如7和-7):
System.out.println("Java二进制7:"+Integer.toBinaryString(7));
System.out.println("Java二进制-7:"+Integer.toBinaryString(-7));
输出:
Java二进制7: 111
Java二进制-7: 11111111111111111111111111111001
7的二进制就是111
-7转化二进制的过程:
(1)把-7转化成7,二进制是 111
(2)Java中对于不满32位的int二进制自动补齐,所以变成了(29个0)111
(3)然后取反(29个1)000
(4)然后加1(29个1)001
扩展资料
一、二进制的表示方法
有0,1组成。以0b开头。
代码的表示方法:
System.out.println(0b100)
二、不同进制的数据表现:
八进制:由0,1,....,7.以0开头。
十进制:由0,1......,9.默认整数。
十六进制:由0,1,......9,a,b,c,d,e,f(大小写均可)组成。
十进制:System.out.println(100);
八进制:System.out.println(0100);
十六进制: System.out.println(0x100);
参考资料:百度百科-进制转换
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!