You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何创建仅存0和1的8bit数组并将0-255整数转二进制存入

Java实现方案

核心思路

0~255的整数刚好对应无符号8位二进制的取值范围,我们直接通过位运算逐位提取每一位的0/1值存入固定长度为8的数组即可,无需转换为字符串再拆分,执行效率更高。

完整实现代码

import java.util.Random;

public class BitArrayDemo {
    public static void main(String[] args) {
        // 1. 创建长度为8的int数组,仅存储0和1,对应8bit
        int[] bitArray = new int[8];
        
        // 2. 生成0~255之间的随机整数
        Random random = new Random();
        int randomNum = random.nextInt(256); // nextInt(256)返回[0,256)的整数,刚好覆盖0~255
        System.out.println("生成的随机整数:" + randomNum);
        
        // 3. 逐位提取bit值存入数组,此处按高位在前的顺序存储(可根据需求调整顺序)
        for (int i = 0; i < 8; i++) {
            // 从最高位(第7位,对应2^7=128)开始逐位取值
            bitArray[i] = (randomNum >> (7 - i)) & 1;
        }
        
        // 打印结果验证
        System.out.print("对应的8bit数组(高位在前):");
        for (int bit : bitArray) {
            System.out.print(bit + " ");
        }
    }
}

代码说明

  • 数组定义:长度固定为8的int数组,通过位运算保证存入的元素只能是0或1,完全满足仅存储0和1的8bit数组要求
  • 位运算逻辑:(randomNum >> offset) & 1 是标准的位提取操作,先将目标位移到最低位,再和1做与运算,结果只能是0或1
  • 存储顺序:示例中为高位在前存储,如果你需要低位在前,只需要把循环中的偏移量改为i即可,即bitArray[i] = (randomNum >> i) & 1;

内容的提问来源于stack exchange,提问作者user17550172

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:36:02