【问题标题】:What is the best data type suitable for integers with max limit upto 10^5?适用于最大限制为 10^5 的整数的最佳数据类型是什么?
【发布时间】:2013-09-20 21:23:38
【问题描述】:

参考INPUT部分

http://www.codechef.com/problems/FCTRL

我应该为 t 的值使用什么数据类型? 另外,int 与 unsigned int 的处理开销是否相同?

【问题讨论】:

  • 由于您没有将值T 用于任何昂贵的操作,而只是为了读取BTSes 的数量,int 应该在这里解决问题。
  • 关于处理成本,这将取决于平台/处理器。

标签: c types int limit unsigned-integer


【解决方案1】:

在 C 中,整数 0 到 100,000 的最佳建议是 类型:

如果最好意味着速度:uint_fast32_t

如果最好的意思是空格:uint_least32_t

int 在某些机器上是 2 个字节。如果便携性很重要,请考虑一下。


一般而言signedunsigned 不存在显着的处理差异。对于选择编译器/优化/机器,某些命令(右移、除法等)可能有很大不同,而分析是最好的决定。

【讨论】:

  • 不正确,仅当它适用于主要桌面平台(如 x86)时。
  • @Diego C Nascimento 我曾使用过许多嵌入式处理器,发现那里的无符号和有符号性能也相似。也许旧的 6502 可能有未签名的问题,但我在过去 10 年中没有使用过任何东西。建议您使用 C 解决方案发布答案​​。
  • 没有问题的问题没有解决方案。您的反应很好,但是是的,嵌入式处理器需要更多指令来处理未签名/签名。无论如何,我认为这不是 OP 的情况。
  • 我是 C 的初学者。你能告诉我在哪里(任何参考资料)以最容易理解的形式阅读这些数据类型。
  • @fakeprogrammer 欢迎来到 SO。 “最容易理解的形式” - 这是高度主观的另一个问题。有很多个地方,例如nongnu.org/avr-libc/user-manual/group__avr__stdint.html。当然,您可以搜索“ISO/IEC 9899:201x 草案”并阅读几乎最好的定义。
猜你喜欢
  • 2016-09-06
  • 2020-01-30
  • 2016-03-05
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-03
相关资源
最近更新 更多