V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liukanshan
V2EX  ›  程序员

Java 直接操作二进制的疑问

  •  
  •   liukanshan · 2019-05-17 18:27:06 +08:00 · 2022 次点击
    这是一个创建于 2016 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最小单位 byte 也要占用 8 个 bit 我看 OutputStream 最小单位也是 byte 那么能否自定义 bit 位数 进行输出呢? 先谢谢大家。

    可能说的不是特别清楚 意思是我想定义 10 个 bit 的输出 这些都是我可以控制的 以及读取也是不会给我转化为 byte。

    10 条回复    2019-05-23 16:22:41 +08:00
    xbigfat
        1
    xbigfat  
       2019-05-17 18:31:34 +08:00 via iPhone
    想打印的话,字符是最小单位,8 位是固定的吧。如果是自己操作,IO 都是自己来,我觉得应该没问题。但最好还是遵循通用规范
    liukanshan
        2
    liukanshan  
    OP
       2019-05-17 18:33:58 +08:00
    @xbigfat 不是打印出来哈 是输出到文件中 我通过二进制查看最少都是 8 bit 可是在一些场景下 我想去控制 bit 位数。
    momocraft
        3
    momocraft  
       2019-05-17 18:35:13 +08:00
    可是那都是 byte stream 啊

    你想朝哪输出呢?
    liukanshan
        4
    liukanshan  
    OP
       2019-05-17 18:37:28 +08:00
    @momocraft 对文件输出哈
    GoodRainChen
        5
    GoodRainChen  
       2019-05-17 18:44:20 +08:00
    通过位运算可以做的 bit 级操作
    dorentus
        6
    dorentus  
       2019-05-17 18:48:33 +08:00 via iPhone
    momocraft
        7
    momocraft  
       2019-05-17 18:49:25 +08:00   ❤️ 5
    你有没有注意到文件大小的单位也是字节
    raysonx
        8
    raysonx  
       2019-05-17 18:49:52 +08:00 via iPad
    现实中,不管是文件系统中还是网络上传输的数据,都是以 byte 为单位的,不存在 1 字节又 3 个 bit 的文件。
    geelaw
        9
    geelaw  
       2019-05-17 18:50:31 +08:00 via iPhone
    你当然可以自己做一个包装,以一个 byte stream 为基础提供 bit stream 的外观。你需要做的不是“不给你转换为 byte ”,而是“把读进来的 byte 转换为 bit 提供给消费者”以及“送进来的 bit 转换为 byte 再输出出去”。
    Chinsung
        10
    Chinsung  
       2019-05-23 16:22:41 +08:00
    你自己封装个类对 byte 使用位操作就可以达到效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1897 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:18 · PVG 00:18 · LAX 08:18 · JFK 11:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.