【发布时间】:2013-07-22 08:39:22
【问题描述】:
我有一个 int (32) 值 Val 包装在表单中
----------------------------------------
| 32-XXXXXXXXX-16 | 15-short-int-val-0 |
----------------------------------------
当我从这个Val中提取短整数值时,如果我执行操作
short temp = Val & 0x0000FFFF;
Val & 0x0000FFFF 操作的返回类型是什么?我是否需要将值类型转换为 (short)(Val & 0x0000FFFFF) 才能将正确的数据存储在 temp 中?
由于我假设十六进制数字本质上被视为无符号整数,因此产生了疑问。
上面的操作和做有什么区别
short temp = Val & 0xFFFF;
【问题讨论】:
-
&不是逻辑运算符,而是按位运算符 AND!,如果你想返回short,只需给出返回类型short,如果你想return Val & 0x0000FFFF;,返回类型应该是int,因为位操作符会自动将结果提升为int -
抱歉,我们会更正。
-
短返回类型就可以了。
-
如前所述,我的目的是在短变量中保存价值
标签: c type-conversion