|
|
1
15
此代码的问题在于它对有符号值执行逐位操作。对于不同的整数表示,对负值的这种运算的结果差别很大。
在二元互补体系结构上,结果是:
在符号和量级架构上,结果是:
|
|
|
2
7
很难知道面试官希望你说什么。我们只能猜测一下。
附录: 所写的代码在我目前使用的三个编译器上都能正常工作, 所以这确实是一个猜测游戏,试图弄清楚面试官的意图。一个符合标准的16位编译器也会生成正确的代码,因此我们只能猜测是否有遗漏的内容,这个示例是否事实上没有被破坏,或者面试官是否曾经使用过一个16位编译器,当被迫将0xFFFF扩展到long时,它会将0xFFFF视为一个有符号的量。问他会很有趣的。 |
|
|
3
1
我想说的是,除非知道周围代码的上下文或意图,否则本代码中没有错误! |
|
|
4
0
这可能是一个黑暗的镜头,但假设长vs int不是问题所在(其他人已经发布了答案来回答这个问题),并且
我能看到的另一件事是,如果提问者想让您意识到long中包含的缺失数据不会受到仅使用0xFFFF的影响。 在我看来,这个问题有点古怪,是基于这个问题是如何呈现在这里的,或者很明显我们都在思考:) |
|
5
0
如果值已初始化,则行为定义良好。最低有效的16位被保留,其余的被清零 |
|
|
6
-1
|
|
|
Justinas DaukÅ¡a · C++超长整数计数器 8 年前 |
|
|
mtnp · 在javafx中创建长时间单击或按下按钮的方法 8 年前 |
|
|
NGM · 使用ajax更新元素直到for循环结束才生效 8 年前 |
|
|
Josef Kvita · 在Python中获取C#Int64 8 年前 |
|
|
user4288514 · 大数与长整数之间的除法:如何绕过浮点转换? 8 年前 |
|
|
Oliver Nikolovski · 检查计算结果是整数还是小数 9 年前 |