相关疑难解决方法(0)

内置类型的性能:char vs short vs int vs. float vs. double

这可能看起来有点愚蠢但是看到Alexandre C 在其他主题中的回复,我很想知道如果内置类型有任何性能差异:

charVS shortVS int主场迎战float 主场迎战double.

通常我们在现实生活中没有考虑这种性能差异(如果有的话),但我想知道这是出于教育目的.可以问的一般问题是:

  • 整数算术和浮点运算之间是否有任何性能差异?

  • 哪个更快?更快的原因是什么?请解释一下.

c c++ performance built-in

64
推荐指数
4
解决办法
3万
查看次数

为什么对无符号字符的算术运算将它们提升为有符号整数?

很多类似问题的回答都指出,标准是这样的。但是,我无法理解标准制定者做出这一决定背后的原因。

根据我的理解, anunsigned char不会以 2 的补码形式存储值。所以,我没有看到让我们说XOR ing twounsigned chars会产生意外行为的情况。因此,将它们提升到int似乎只是浪费空间(在大多数情况下)和 CPU 周期。

此外,为什么int?如果一个变量被声明为unsigned,显然无符号对程序员很重要,因此在我看来,升级到 anunsigned int仍然比 an 更有意义int

[编辑 #1] 如评论中所述,unsigned int如果int无法充分容纳unsigned char.

[编辑#2] 为了澄清这个问题,如果它是关于在intthan上运行的性能优势char,那么为什么它在标准中?这可以作为向编译器设计者提供更好优化的建议。现在,如果有人要设计一个不这样做的编译器,这将使他们的编译器不完全遵守 C/C++ 标准,即使假设该编译器确实支持该语言的所有其他必需功能。简而言之,我无法弄清楚为什么我不能直接操作的原因unsigned chars,因此将它们提升到 的要求ints似乎没有必要。你能举个例子证明这是错误的吗?

c c++

10
推荐指数
1
解决办法
288
查看次数

标签 统计

c ×2

c++ ×2

built-in ×1

performance ×1