【发布时间】:2017-01-16 17:24:09
【问题描述】:
给定以下公式:
(((a-b)>>3) + c-d+4)<<2
而且每个变量都是一个8位寄存器,需要找几位需要的结果才不会OVERFLOW。
我认为答案是11。
我们可以在(a-b) + the biggest number in (c-d+4) 获取的最大数字。
如果有人能解释一下,那就太好了。
【问题讨论】:
-
问题是:给定有符号整数
a、b、c、d每个在 [-128,127] 中,需要的最小位数 N 是多少final 结果或任何 intermediate 结果都将溢出 [-2**(N-1), 2**(N-1)-1],其中@ 987654328@ 表示有符号(算术)右移。
标签: bit-manipulation bit bit-shift byte-shifting