|
1
参见语言: 位域( bit-field )
|
|
2
建议去看 verilog,
除了 bit 没别的类型。 |
|
zhuyongqi9Jan 4, 2021
3
C51 里有 /狗头
|
|
raaaaaarJan 4, 2021 via Android
4
计算机不是以 byte 为最小单位吗
|
|
5
有没有 bit 是方式方法,但是应该首先考虑要解决什么问题,你要 bit 类型想解决的问题是什么呢?
|
|
Takashi123Jan 4, 2021
6
位段
|
|
SuperMildJan 4, 2021
7
一个 bit 通常没有用啊,多个 bit 连起来就是 byte 或者二进制数字了。
|
|
rainman777Jan 4, 2021
8
bool
|
|
opengpsJan 4, 2021 via Android
9
因为你学的是高级语言,你用的各种类型已经被封装过了
|
|
rainman777Jan 4, 2021
10
但是 bool 好像也是占 8bit...
|
|
OysterQAQJan 4, 2021
13
内存机构的最小寻址单位为 1Byte
|
|
misaka19000Jan 4, 2021
15
@opengps #9 能不能操作 bit 看硬件不看语言
|
|
agagegaJan 4, 2021 via iPhone
16
因为通常来说在语言里加入一个类型,在指令集上就需要对应的寄存器和一组相关的指令。很多指令集架构都不支持单独操作某个 bit 的指令,更没有只有 1 个 bit 的寄存器。而如果真的要表示 bit 的时候,用 byte 模拟就行了。你可以参考 LLVM 中不同目标平台对 i1 类型的处理。
|
|
yolee599Jan 4, 2021
17
Verilog HDL 了解一下?
|
|
opengpsJan 4, 2021
18
@lxilu
@misaka19000 从道理上来讲,编程语言都得依赖底层 bit,只不过能否操纵得看是否这门语言对外留了处理方式,我用 C#开发车载 GPS 用途的 socket 服务器,有些通信包解析的时候,就是用的 bit 来标识传感器状态的,C#的 string 类有个 Convert 可以直接转换为二进制,然后拿到特定 bit 位的值是 0 还是 1 。 至于 C#直接操作比特位,则需要在类前面加 unsafe 关键字,大部人学了 C#很久可能也没用到过这个,但是用到了异或校验等位运算的时候,就必然得用到了 |
|
BingoXuanJan 4, 2021
19
用 long+bit mask 模拟就好了。硬件寄存器都是这样子,一个 byte 可能映射了 3-4 个功能,某个功能取决于某个 bit 的电平高低。
|
|
systemcallJan 4, 2021
20
有的,c51 C 就支持 sbit
嵌入式用的很多吧,按位寻址、字节寻址,都有的 |
|
systemcallJan 4, 2021
21
@OysterQAQ #13
看看 c51,可以按位寻址 |
|
ruokwJan 4, 2021 via Android
22
内存寻址顶多到 byte,就算语言层面定一个 bit 类型,还是得寻址到 byte
|
|
JirajineJan 4, 2021 via Android
23
一般来说 byte 用得比较多,二进制协议、格式等都是以 byte 为最小单位。
|
|
fuchunliuJan 4, 2021 via Android
24
bit 一般操作寄存器才会用吧,不做硬件的给你这个类型,你还是占一字节内存,这不是脱了裤子放屁嘛
|
|
icyalalaJan 4, 2021
25
这到底还是历史问题。。
曾经 Intel 还没出来的时候,不少处理器和磁带都是一次操作 6-bit 。 Intel 4004 是按 4-bit chunks 来处理的, 但是从 8086 开始,后面的新处理器基本都是用 8-bit byte 作为最小操作单位了, 再往后随着 CPU 升级,实际 CPU 每次处理 bit 数是提升的,但是出于兼容考虑或者历史原因,byte 仍然是对外的最小处理单位。 说起来 1byte 也不一定就等于 8bit 。。 |
|
chitandaJan 4, 2021
26
char??
|
|
letkingJan 4, 2021
27
对大多数语言来说,你可以用位运算实现 bit 级别的控制和运算,但是空间占用上只能以 8bit 为最小单位了,再小也没必要了——最多也就浪费 7bit 的空间而已,没必要单独搞一个 bit 类型出来。
|
|
b1eberg0nJan 4, 2021
28
Erlang:?
|
|
sampengJan 4, 2021 via iPhone
29
如果接口文档里这没写:嗨,给我一个 32bit 的字符串。
|
|
systemcallJan 4, 2021
30
|
|
SmallTeddyJan 5, 2021
31
计算机中使用的二进 bai 制数 du 共有 3 个单位:位,字节,字。
位(bit)(b)音译为比特。位 bai 是计算机存储数 du 据的最小单位。一 zhi 个位只能表示 0 和 1 两种状态。 字节(byte)音译为"拜特",常以大写字母"B"表示字节。字节是最基本的数据单位。8 位二进制数为一个字节。 8bit ( 8b ) = 1byte ( 1B )之后就是 KB,MB,GB,TB |