java bit

作者:原创时间:2022-03-24
文档

java bit是什么,让我们一起了解一下?

bit是Binary digit(二进制数位)的缩写,意为“位”或“比特”,是计算机运算的基础。Java中,byte意为字节,是计算机文件大小的基本计算单位,1Byte=8bit(1B=8b)。

Byte与bit的关系是怎样的?

在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。 

而Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。bit与Byte之间可以进行换算,其换算关系为:1Byte=8bit(或简写为:1B=8b)。在实际应用中一般用简称,即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。

在java中bit如何具体操作?

Java中数据流的操作很多都是到byte的,但是在许多底层操作中是需要根据一个byte中的bit来做判断,Java中要根据byte获得bit,就要进行一些位操作。

具体实例如下:

package com.test;  
import java.util.Arrays;  
public class T {  
    /** 
     * 将byte转换为一个长度为8的byte数组,数组每个值代表bit 
     */  
    public static byte[] getBooleanArray(byte b) {  
        byte[] array = new byte[8];  
        for (int i = 7; i >= 0; i--) {  
            array[i] = (byte)(b & 1);  
            b = (byte) (b >> 1);  
        }  
        return array;  
    }  
    /** 
     * 把byte转为字符串的bit 
     */  
    public static String byteToBit(byte b) {  
        return ""  
                + (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1)  
                + (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1)  
                + (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1)  
                + (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1);  
    }  
    public static void main(String[] args) {  
        byte b = 0x35; // 0011 0101  
        // 输出 [0, 0, 1, 1, 0, 1, 0, 1]  
        System.out.println(Arrays.toString(getBooleanArray(b)));  
        // 输出 00110101  
        System.out.println(byteToBit(b));  
        // JDK自带的方法,会忽略前面的 0  
        System.out.println(Integer.toBinaryString(0x35));  
    }  
}

输出内容就是各个 bit 位的 0 和 1 值!

再根据各个Bit的值,返回byte的代码:

/** 
 * 二进制字符串转byte 
 */  
public static byte decodeBinaryString(String byteStr) {  
    int re, len;  
    if (null == byteStr) {  
        return 0;  
    }  
    len = byteStr.length();  
    if (len != 4 && len != 8) {  
        return 0;  
    }  
    if (len == 8) {// 8 bit处理  
        if (byteStr.charAt(0) == '0') {// 正数  
            re = Integer.parseInt(byteStr, 2);  
        } else {// 负数  
            re = Integer.parseInt(byteStr, 2) - 256;  
        }  
    } else {// 4 bit处理  
        re = Integer.parseInt(byteStr, 2);  
    }  
    return (byte) re;  
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java blob java break wps怎么求和 java bufferedimage java bufferedoutputstream java build.gradle java bundle java bytebuffer java byte取值范围 java calculate 苹果13怎么开机 java calendar获取当前时间 java callback java ceiling 平板如何录屏 java cglib iPad怎么重启 java channel java charat java charsequence 如何清理win10电脑c盘 java binlog win10c盘满了怎么清理 java binder java binary excel表格怎么合并单元格 java bigdecimal java benchmark java beanutils 手机充电发热发烫是什么原因 手机充电时可以玩手机吗 java bean java base64decoder java base64 java barrier java bacnet win10专业版和企业版的区别 java async java assembly java aspose