我提的问题,大家都愿意来回答!
在 VC++ 6.0 中,我定义了一个变量:int a
它的值可能为:0 到 65535 之间 (这个值由我来决定)
现在,我又定义了一个变量:int b
变量 b 的值是由两个变量 a 来组成的,也就是说 b 的高4位和低4位都等于 a
=============================================
举例:
假如变量 a = 0xFFFF
那么变量 b = 0xFFFFFFFF
=============================================
变量 a 已知为 32767,求变量 b
希望解答的朋友能加入一些文字说明,这样能让更多的菜鸟学到知识,谢谢!
[解决办法]
例子没看明白. 能不能不要全都是11111
高4位低4位用Hex表示, 也只有F一位就行了吧?
那b=0xFFFFFFFF, 哪两个F是由a决定的? 其它的F又是怎么来的?
[解决办法]
a=a&0xff;
b=a < <4 | a ;
[解决办法]
这个问题关键是要注意一点,int这种类型在有些机器上是16位的,在有些机器上是32位的,还
有就是符号位的问题,其它就是一些简单的位运算,没有什么复杂的。
[解决办法]
b = (a * 65536) + a;
不会产生溢出???