二进制运算

基本符号

位运算符

& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> "有符号"右移运算
>>> "无符号"右移运算

术语

符号含义
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=0w1xii2

二进制转补码

补码首位是符号,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 )=Xw12w1+i=0w2xii2

补码转无符号数

当补码小于0时,首位值是1,此时表示的无符号数等于补码加上首位所表示的无符号数值
T 2 U w ( x → ) = { x + 2 w , x &lt; 0 x , x ⩾ 0 T2U_w(\overrightarrow x)=\begin{cases} x+2^w, &amp; x\lt0\\ x, &amp; x \geqslant 0 \end{cases} T2Uw(x )={x+2w,x,x<0x0
经整合后,运算表示为
T 2 U w ( x → ) = x + x w − 1 ∗ 2 w T2U_w(\overrightarrow x)=x+x_{w-1}*2^w T2Uw(x )=x+xw12w

无符号数转补码

当无符号数首位值是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 &gt; T M a x w U2T_w(\overrightarrow u)=\begin{cases} u, &amp; u \leqslant TMax_w \to 0X7FFFFF\\ u-2^w, &amp; u \gt TMax_w \end{cases} U2Tw(u )={u,u2w,uTMaxw0X7FFFFFu>TMaxw
经整合后,运算表示为
U 2 T w ( u → ) = − u w − 1 ∗ 2 w + u U2T_w(\overrightarrow u)=-u_{w-1}*2^w+u U2Tw(u )=uw12w+u

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值