1. bit:位
一个二进制数据0或1,是1bit;
2. byte:字节
存储空间的基本计量单位,如:MySQL中定义 VARCHAR(45) 即是指 45个字节;
1 byte = 8 bit
3. 一个英文字符占一个字节;
1 字母 = 1 byte = 8 bit
4. 一个汉字占2个字节;
1 汉字 = 2 byte = 16 bit
byte:一个字节(8位)(-128~127)(-2的7次方到2的7次方-1)
short:两个字节(16位)(-32768~32767)(-2的15次方到2的15次方-1)
int:四个字节(32位)(一个字长)(-2147483648~2147483647)(-2的31次方到2的31次方-1)
long:八个字节(64位)(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1)
float:四个字节(32位)(3.402823e+38 ~ 1.401298e-45)(e+38是乘以10的38次方,e-45是乘以10的负45次方)
double:八个字节(64位)(1.797693e+308~ 4.9000000e-324
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; }
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
先对整个数组进行异或得到一个结果,这个结果的任意一个非零位都可以作为区分两个唯一数的标准。然后根据这个位再次遍历数组,分成两组,分别异或即可得到这两个唯一数。 **代码示例:** ```cpp std::pair, int> ...
在这个名为"OFDM-Framework-LabVIEW-master.zip_labview_ofdm_usrp labview"的压缩包中,我们可以推测这是一个基于LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器工程工作台)开发...
- `bit tempreadbit(void)`:读取DS18B20的一个数据位。 - `BYTE tempread(void)`:读取一个字节的数据。 - `void tempwritebyte(BYTE dat)`:向DS18B20写入一个字节的数据。 - `void tempchange(void)`:发送温度...
具体地,首先分别获取两个整数的最低字节,然后使用掩码操作清除一个整数的最低字节,并将另一个整数的最低字节填充到该位置。 ```c int swap_least_significant_byte(int x, int y) { // 获取x和y的最低字节 int...
在C/C++语言中,结构体是一种复合数据类型,允许我们将多个不同类型的变量组织在一起,形成一个整体。这种特性非常强大,尤其当涉及到硬件接口或者需要精细控制内存布局的时候。本文将重点介绍结构体的一个高级特性...
2. 获取复选钮标记的值:在 Java Web 开发中,如果需要获取一组复选框(checkbox)的值,应该使用 `request.getParameterValues("city")` 方法,它会返回一个字符串数组,包含所有被选中的值。 3. 主板与 CPU 关系...
在计算机系统中,数据通常以字节(Byte)为单位进行存储和处理,1 Byte等于8个bit。 3. 显示和隐藏命令窗口的操作是在“窗口”菜单中完成的。在大多数程序中,包括一些开发环境或操作系统界面,控制窗口显示和隐藏...
在这段代码中,首先定义了一个浮点数`floatValue`并将其值设置为8000。接着,使用`BitConverter.GetBytes()`方法将这个浮点数转换成一个字节数组`bytes`。然后通过`BitConverter.ToInt32()`将这个字节数组转换成一个...
消息摘要算法用于生成一个固定长度的摘要值,通常用于验证数据的完整性和一致性。 ##### 6.1 IMessageDigest接口 IMessageDigest接口定义了消息摘要算法的基本操作,如更新摘要和计算最终摘要值。 ##### 6.2 ...
- **定义**:赋值是指将一个值分配给一个变量或对象的过程。 - **应用场景**:如`int a = 5;` 就是将数字5赋值给了变量a。 ### Assignment Operator assignment(指派)运算子/=赋值运算符 - **定义**:"="运算符...
信息获取是信息技术的一个基础环节,它涵盖了信息的定义、载体、传播方式、接收方式及其特征。信息的含义可以从多个角度理解,如香农认为信息是用来消除不确定的东西,维纳强调信息不是物质也不是能量,而钟义信则...
- 存储器:存储数据的最小单位是位(bit),8位构成一个字节(Byte)。KB是千字节(Kilobyte)的简称,是存储容量的计量单位。 3. 计算机系统组成:完整的计算机系统由计算机硬件系统和软件系统两部分组成,硬件...
- 存储数据的最小单位:计算机存储数据的最小单位是位(bit),而字节(Byte)是最小的数据单位,由8位组成。 - 完整的计算机系统:由计算机硬件系统和软件系统组成,包括处理器、内存、输入输出设备等硬件以及...
TS格式详解 TS流格式是数字视频广播系统中的一种基本格式,它将多个音频、...PAT表中的每一项都包含了一个PID和一个节目编号,用于关联TS流中的节目信息。PAT表是TS流中的基本组成部分,它提供了TS流中的基本信息。
1bit是信息的最小单位,1Byte是信息的常用存储单位,其中1Byte等于8bit。信息的存储容量单位还包括KB、MB、GB、TB等,它们之间存在1024倍的关系。 【信息技术发展历程】 信息技术的发展历程可以分为多个阶段,从...
- **知识点**: 在C语言中,定义一个二维数组时可以通过初始化列表来指定某些元素的初始值。例如,对于数组`int a[3][4]={{3,4},{2,8,6}};`,其中`a[2][1]`的值默认为0,因为第二行(索引为1)只初始化了前两个元素。...
基本单位是位(bit),8位组成一个字节(Byte)。数据单位有bit、B、KB、MB、GB、TB等。 3. 字符编码:ASCII码是美国信息交换标准码,用7位二进制表示128个字符。汉字编码有GB-2312、GBK、GB18030等,传统上每个...
**按位复制**:将一个值的二进制表示逐位复制到另一个值。 #### Bitwise Operation **按位操作**:在二进制数的每一位上进行的逻辑操作。 #### Block **块**:一组语句或指令,通常用花括号括起来。 #### ...