skip to content
[Jimjimu Notes]

Computer Organization: Number Representation

/ 2 min read

Course index · Next: Floating Point

进制英文名称常见代码前缀示例说明
二进制Binary0b 或 0B0b1010仅包含数字 0 和 1。
八进制Octal0o 或 0O



(C/C++等语言中常以数字 0 开头)
0o17



017
包含数字 0 到 7。
十进制Decimal无前缀(默认)10我们日常使用的数字系统,包含 0 到 9。
十六进制Hexadecimal (常简称为 Hex)0x 或 0X0x1A



0xFF
包含 0 到 9,以及字母 A 到 F(大小写均可,代表 10 到 15)。
例子:
Pasted image 20260424204312

几种重要的编码方式:unsigned, sign and Magnitude, 1’s complements, 2’s complement, Bias Encoding

Unsigned 与 Overflow

Pasted image 20260424212206

Sign and Magnitude (原码)

Pasted image 20260424212247

有两个0,最高位表示符号,但是随着binary odometer递增,所表示的数有时候增加有时候减少 以 8 位为例:

  • +5 的原码:0000 0101
  • -5 的原码:1000 0101

One’s Complement(反码)

Pasted image 20260424212716

有两个0,最高位表示符号,是将sign and magnitude的负数中除了符号位取反,解决了原码 incrementing binary odometer的问题(从左到右,一个数的反码加1,这个数也加1)

2’s Complement(补码)

Pasted image 20260424213029

将反码的负数部分整体向左平移一位得到,解决了2个0的问题 补码的两种计算方法:

Pasted image 20260424213438

Bias Encoding

Pasted image 20260424213537

这里Bias是相对于Unsigned的,比如unsigned中01111表示+15,在bias=-15的情况下,01111表示0


Course index · Next: Floating Point

Backlinks