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; }
以上就是小编今天的分享了,希望可以帮助到大家。