有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?----阿里巴巴2015校招研发在线
来源:互联网 发布:淘宝油烟净化器 编辑:程序博客网 时间:2024/04/30 10:54
有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
正确答案: C 你的答案: F (错误)
C=(int32)(A+B),D=(int32)(A-B)
C=(int32)(A+B),D=(int32)((A-B)>>1)
C=(int32)(A+B),D=B
C=(int32)(A+B),D=(int32)(A+2*B)
C=(int32)(A*B),D=(int32)(A/B)
都不可以,可能溢出
- 添加笔记
- 收藏
- 纠错
选C:
当A+B未溢出时,A=C-D;
当A+B溢出时,A=C+2^32-D; 因为溢出相当于减去了2^32。
所以合起来的计算公式为: A=(C+2^32-D)%2^32 (取余数)
当A:INT_MAX B:INT_MAX,验证正确。
0 0
- 有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?----阿里巴巴2015校招研发在线
- 有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
- c语言:不使用(a+b)/2这种方式,求两个数的平均值。
- 【C语言】不使用(a+b)/2这种方式,求两个数的平均值。
- 交换两个数的值(使用中间变量和不使用中间变量的情况void main() { int a=1,b=3; //swap1(&a,&b); swap2(&a,&b); printf("a=%d, b=%)
- C语言:不使用(a+b)/2这种方式(会溢出),求两个数的平均值
- 如何用宏定义的方式实现MAX(A,B),MAX(A,B,C),MAX(A,B,C,D)
- 1065. A+B and C (64bit) 大数的加减
- 封装一个cout方法,能实现如此调用:cout(a)(b)(c)(d)(e)… 并且返回的值为参数连剩的结果,即a*b*c*d*e*…。如cout(1)(3)(7) 得到21
- 在数组中找出两个数a、b,使得a加b等于给定的c
- a+++b+c+++d++
- a/b + c/d
- 不使用(a + b) / 2这种方式,求两个数的平均值
- 不使用(a+b)/2这种方式,求两个数的平均值
- 3.不使用(a+b)/2这种方式,求两个数的平均值。
- 不使用(a+b)/2这种方式,求两个数的平均值
- 不使用(a+b)/2这种方式,求两个数的平均值
- 不使用(a+b)/2这种方式,求两个数的平均值。
- Linux framebuffer example
- PiLC - S7 PLC for Raspberry Pi
- poj 1797 Heavy Transportation
- js 中对象属性特性的描述
- Linux虚拟机的三种网络连接方式
- 有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?----阿里巴巴2015校招研发在线
- Yii2.0 上传图片
- Python Generators(生成器)——yield关键字
- 解决Mac OS lion下(ubuntu等linux也一样)启动tomcat的Cannot find ./catalina.sh 的问题
- innerHTML innerText outerHTML outerText的区别
- LaTex
- Linux内核通知链机制的原理及实现
- 友盟分享完之后弹出dialog
- Object.defineProperty 函数 (JavaScript)