Java 直接操作二进制的疑问

2019-05-17 18:27:06 +08:00
 liukanshan

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

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

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

你想朝哪输出呢?
liukanshan
2019-05-17 18:37:28 +08:00
@momocraft 对文件输出哈
GoodRainChen
2019-05-17 18:44:20 +08:00
通过位运算可以做的 bit 级操作
dorentus
2019-05-17 18:48:33 +08:00
momocraft
2019-05-17 18:49:25 +08:00
你有没有注意到文件大小的单位也是字节
raysonx
2019-05-17 18:49:52 +08:00
现实中,不管是文件系统中还是网络上传输的数据,都是以 byte 为单位的,不存在 1 字节又 3 个 bit 的文件。
geelaw
2019-05-17 18:50:31 +08:00
你当然可以自己做一个包装,以一个 byte stream 为基础提供 bit stream 的外观。你需要做的不是“不给你转换为 byte ”,而是“把读进来的 byte 转换为 bit 提供给消费者”以及“送进来的 bit 转换为 byte 再输出出去”。
Chinsung
2019-05-23 16:22:41 +08:00
你自己封装个类对 byte 使用位操作就可以达到效果

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/565164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX