【发布时间】:2011-05-14 05:02:12
【问题描述】:
我正在查看此页面:http://www.devbistro.com/tech-interview-questions/Cplusplus.jsp,但不明白这个问题:
以下代码可能有什么问题?
long value; //some stuff value &= 0xFFFF;注意:向候选人提示他们正在开发的基础平台。如果该人仍然没有发现代码有任何问题,则说明他们没有 C++ 经验。
谁能详细说明一下?
谢谢!
【问题讨论】:
-
这段代码可能有很多问题。另一方面,它可能很好。没有上下文,就不可能为这个问题提供一个合理的答案。
-
@James:也许在某些实现上,也许不是。无论如何,这都是一个糟糕的借口。
-
我删除了关于符号扩展的答案,因为它是错误的。我怀疑这是面试官正在寻找的,但如果面试官正在寻找,他们也错了。
-
一个人可以“有 C++ 经验”并且从不使用位运算符。 C++ 是如此庞大的语言,它支持如此多的编程范例(除了“Hello World!”类型的东西)我不确定是否有可能根据 1 个问题明确确定一个人是否有经验。
-
Axn:
0xffff在任何情况下都不会被提升为0xffffffff-0xffff始终与65535相同,这意味着该常量具有如果int只有 16 位,则键入unsigned int。当提升为long时,它将保持为0xffff/65535。
标签: c++ c bit-manipulation integer-promotion