有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
来源:互联网 发布:传奇霸业翅膀升级数据 编辑:程序博客网 时间:2024/05/01 12:04
每个选项都是通过A,B来得到C,D的,则说明,A,B都是32位的int类型的数,可表示的数的范围为:-2147483648~2147483647。
(1) A选项中: C=(int32)(A+B),D=(int32)(A-B) ,如果能表示,则表示成A=(C+D)/2,B=(C-D)/2,考虑到C+D=(A+B)+(A-B)=2B,虽然B在这个范围内,但是2B有可能超出了32位Int类型的表示范围了。
(2) B,D,E选项同理都有可能超出32位int类型的表示范围。
(3)C选项中,C=A+B,D=B,得到A=C-D,B=D,根据原式C-D=A+B-B=A,D=B,肯定不会超出范围。
这里一定要用每个选项中的给的式子带入,因为题目中既然能够表示,则说明选项中的每个式子都在32位int类型的表示范围之类。
1 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这种方式,求两个数的平均值。
- vs2013编译FFMPEG. 连接错误问题.
- Java设计模式--单例模式
- ubuntu 下如何以root身份登录
- 二分+dp,在一个地方上卡了2小时
- 机器学习领域的五大流派
- 有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
- 多重背包模板
- openwrt 开机启动
- 模拟strstr函数
- Directx学习笔记【二】 将win32基本框架封装成类
- Java中的位运算机制详解
- Qt之国际化--多语言动态切换
- (中国剩余定理模版)hdoj 5768 Lucky7
- 深度学习-LeCun、Bengio和Hinton的联合综述(上)