您当前的位置:首页 > 互联网教程

java中二进制怎么表示

发布时间:2025-05-23 03:38:47    发布人:远客网络

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

11111111111111111111111111111001

可以看到Java中对于数的表示属于有符号的,那么这个是怎么来的?

(2)Java中对于不满32位的int二进制自动补齐,所以变成了

这就是-7的整个转化过程,那么现在有一个问题,如果有一个文本文件,每一行有八位二进制,表示的范围是(0~255),也就是用一个字节表示的无符号整数,如果现在要把这些二进制转化成整数存到文件里应该怎么做?

假设用Java读进了第一行,那么直接打印出来的值是-2,不符合要求,这时让-2变254有两种办法:

(1)用Java自带的方法,Byte.toUnsignedInt((byte)

-2)(ps.-2的二进制表示就是line1),这样打印出来的就是254了

System.out.println(Byte.toUnsignedInt((byte)-2));

Java中-2的二进制表示:11111111111111111111111111111110(这个二进制的后八位就是line1,可以直接打印的话Java把其当做了负数

Java中255的二进制表示:00000000000000000000000011111111(24个‘0’,8个‘1’)

做与后变为:00000000000000000000000011111110

254。可以想一下,假设每一行用2个字节表示一个无符号数,那么可以把每一行变成正整数用方法2怎么做?

2.Java中的>>和>>>

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的数字二进制输出

首先,java里int是有32位2进制数组成的

我们一般赋值 int i= 1;这个是赋值10进制的数

赋值 2进制要 int i= 01;(前面加个0,就表示是2进制数)

赋值16进制(常用) int i= 0x00000001;(0x表示为16进制数)

要用2进制输出就是Integer.toBinaryString(i)

因为计算机处理位运算速度是非常快的(应该是最快的运算)

所以很多时候,如果有一堆boolean变量需要表示时,一般只用1个int的数表示,如:

int i= 0x0000000f;//表示后4位为1

int m=(i>> 2)& 1;//其中m就是表示某一位的值,2表示右边开始数第2位(当然是从第0位开始算的)

这种方法在很吃代码效率的程序中经常遇到

三、java中如何将十进制数字转化成二进制

如果表达小于2^31-1的正数代码如下:

public void binaryToDecimal(int n){

int bin= 0;//用来记录最后的二进制数

使用字符串的拼接(+)来实现大于2^31-1的数,代码如下:

public void binaryToDecimal(int n){

可以右移后再与0x01进行&运算得到第一位的数字判断判断它的第几位上是0,第几位上是1,代码如下:

public static void main(String[] args)

System.out.println("第"+(i+1)+"位:"+(num>> i& 0x01));

在windows下编译java文件、执行:

1、先创建一个txt,更改为test.java。

2、编写代码,为输出为holloword。

4、编译java文件,输入命令为javac test.java。

5、如果没有报错,查看当前目录下是否有class文件产生。

6、执行class文件,在命令输入java test,输出为holloword。