java中二进制怎么表示

如题,java中二进制如何表示?
我是说,像十六进制,可以用0x表示,八进制用前面加0表示,二进制有没有相应的表示方法?C语言里面可以用0b00101表示,我试了一下,报错了。

一、二进制的表示方法

有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);

扩展资料

java 判断二进制文件的代码:

public static boolean isBinary(File file)

boolean isBinary = false; 

try { 

FileInputStream fin = new FileInputStream(file); 

long len = file.length();  

for (int j = 0; j < (int) len; j++) {

int t = fin.read(); 

if (t < 32 && t != 9 && t != 10 && t != 13) { 

isBinary = true; 

break;

} catch (Exception e) { 

e.printStackTrace(); 

return isBinary; 

参考资料:百度百科 二进制

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-27

二进制是计算技术中广泛采用的一种数制。二进制数据是用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不显示

第2个回答  2013-02-18
二进制就是01,又分为无符号型和有符号型,首位为符号位。例如011前面的0省略就表示十进制中的3.
第3个回答  2019-03-04
jdk7之后,java中可以用0b开头表示二进制了呀
第4个回答  2017-07-10

    Java中没有表示二进制的方式, 不能像16进制那样0x表示

    一般Java中会通过byte[]数组来存储0,1

相似回答