基本符号
位运算符
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> "有符号"右移运算
>>> "无符号"右移运算
术语
符号 | 含义 |
---|---|
B | 二进制 |
T | 补码 |
U | 无符号数 |
T M i n w TMin_w TMinw | 最小补码 |
T M a x w TMax_w TMaxw | 最大补码 |
U M a x w UMax_w UMaxw | 最大无符号数 |
+ w T +_w^T +wT | 补码加法 |
+ w U +_w^U +wU | 无符号数加法 |
− w T -_w^T −wT | 补码减法 |
− w U -_w^U −wU | 无符号数减法 |
∗ w T *_w^T ∗wT | 补码乘法 |
∗ w U *_w^U ∗wU | 无符号数乘法 |
运算
二进制转无符号数
B 2 U w ( x → ) = ∑ i = 0 w − 1 x i ∗ i 2 B2U_w(\overrightarrow x)=\sum_{i=0}^{w-1} x_i*i^2 B2Uw(x)=i=0∑w−1xi∗i2
二进制转补码
补码首位是符号,1表示负数,0表示整数,所以二进制转补码需要减去首位所表示的数值
B
2
T
w
(
x
→
)
=
−
X
w
−
1
∗
2
w
−
1
+
∑
i
=
0
w
−
2
x
i
∗
i
2
B2T_w(\overrightarrow x)=-X_{w-1}*2^{w-1} +\sum_{i=0}^{w-2} x_i*i^2
B2Tw(x)=−Xw−1∗2w−1+i=0∑w−2xi∗i2
补码转无符号数
当补码小于0时,首位值是1,此时表示的无符号数等于补码加上首位所表示的无符号数值
T
2
U
w
(
x
→
)
=
{
x
+
2
w
,
x
<
0
x
,
x
⩾
0
T2U_w(\overrightarrow x)=\begin{cases} x+2^w, & x\lt0\\ x, & x \geqslant 0 \end{cases}
T2Uw(x)={x+2w,x,x<0x⩾0
经整合后,运算表示为
T
2
U
w
(
x
→
)
=
x
+
x
w
−
1
∗
2
w
T2U_w(\overrightarrow x)=x+x_{w-1}*2^w
T2Uw(x)=x+xw−1∗2w
无符号数转补码
当无符号数首位值是1时,此时补码表示负数,所以无符号数需要减去首位所表示的数值并转为负数
U
2
T
w
(
u
→
)
=
{
u
,
u
⩽
T
M
a
x
w
→
0
X
7
F
F
F
F
F
u
−
2
w
,
u
>
T
M
a
x
w
U2T_w(\overrightarrow u)=\begin{cases} u, & u \leqslant TMax_w \to 0X7FFFFF\\ u-2^w, & u \gt TMax_w \end{cases}
U2Tw(u)={u,u−2w,u⩽TMaxw→0X7FFFFFu>TMaxw
经整合后,运算表示为
U
2
T
w
(
u
→
)
=
−
u
w
−
1
∗
2
w
+
u
U2T_w(\overrightarrow u)=-u_{w-1}*2^w+u
U2Tw(u)=−uw−1∗2w+u