问题标签 [integer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
integer - int32 的最大值是多少?
我永远记不住号码。我需要一个记忆规则。
language-agnostic - 为什么默认情况下语言不会在整数溢出时引发错误?
在几种现代编程语言(包括 C++、Java 和 C#)中,该语言允许在运行时发生整数溢出,而不会引发任何类型的错误条件。
例如,考虑这个(人为的)C# 方法,它没有考虑上溢/下溢的可能性。(为简洁起见,该方法也不处理指定列表为空引用的情况。)
如果这个方法被调用如下:
方法中会发生溢出sumList()
(因为int
C#中的类型是32位有符号整数,列表中的值之和超过了最大32位有符号整数的值)。sum 变量的值为 -294967296(不是 4000000000);这很可能不是 sumList 方法的(假设的)开发人员想要的。
显然,开发人员可以使用多种技术来避免整数溢出的可能性,例如使用 Java 之类的类型BigInteger
,或者 C# 中的checked
关键字和/checked
编译器开关。
但是,我感兴趣的问题是为什么这些语言被设计为默认情况下首先允许整数溢出发生,而不是例如在运行时执行操作时引发异常,这会导致溢出。如果开发人员在编写执行可能导致溢出的算术运算的代码时忽略了溢出的可能性,这种行为似乎有助于避免错误。(这些语言可能包含类似“unchecked”关键字之类的东西,它可以指定一个允许发生整数溢出而不引发异常的块,在开发人员明确意图该行为的情况下;C# 实际上确实有 this . )
答案是否简单地归结为性能 - 语言设计者不希望他们各自的语言默认具有“慢”算术整数运算,运行时需要做额外的工作来检查每个适用的算术是否发生溢出操作——在发生意外溢出的情况下,这种性能考虑是否超过了避免“静默”故障的价值?
除了性能方面的考虑之外,这种语言设计决策还有其他原因吗?
c++ - C++ 处理非常大的整数
我正在使用 RSA 算法进行加密/解密,为了解密文件,您必须处理一些相当大的值。更具体地说,像
现在,这确实是唯一不合适的计算。我曾尝试使用 Matt McCutchen 的 BigInteger 库,但在链接过程中出现了很多编译器错误,例如:
所以我想知道处理来自 RSA 算法的真正大整数的最佳方法是什么。
我听说有可能将你的变量声明为双长,所以......
但我不确定可以存储多大的整数。
例如,我尝试使用 dev C++ 编译和运行以下程序:
然后我得到这些错误。
Derek,我认为通过包含该BigIntegerLibrary.hh
文件,编译器将遍历并编译它将使用的所有必要文件。
我应该如何尝试编译上述程序以解决链接错误?
perl - Perl 中的“0 但为真”是什么意思?
有人能解释一下 Perl 中字符串“0 but true”的确切含义吗?据我了解,它在整数比较中等于零,但在用作布尔值时评估为真。它是否正确?这是语言的正常行为,还是在解释器中被视为特殊情况的特殊字符串?
python - 显示带前导零的数字
鉴于:
如何为所有少于两位数的数字显示前导零?
这是我期待的输出:
c - 如何检查整数是偶数还是奇数?
如何检查给定数字在C中是偶数还是奇数?
architecture - 在 32 位 CPU 上,“整数”类型是否比“短”类型更有效?
在 32 位 CPU 上,一个整数是 4 个字节,一个短整数是 2 个字节。如果我正在编写一个使用许多数值的 C/C++ 应用程序,这些数值总是在提供的短整数范围内,使用 4 字节整数还是 2 字节整数更有效?
我听说它建议 4 字节整数更有效,因为这适合从内存到 CPU 的总线带宽。但是,如果我将两个短整数相加,CPU 是否会将这两个值并行打包一次(从而跨越总线的 4 字节带宽)?
java - 序列生成的主键的正确大小是多少?
目前,我们系统中的主键长度为 10 位,刚刚超过 Java 整数的限制。我想避免这些键中的数字溢出导致的任何维护问题,但同时我不想牺牲太多系统性能来存储我永远不需要的无限大数字。
您如何处理管理主键的大小?我是否最好坚持使用 Java 整数,以获得更大的 Long 的性能优势,并在需要时增加大小,或者我应该硬着头皮,在我的大部分 PK 中使用 Java Long,并且永远不必担心溢出序列大小?
c++ - 如何连接 std::string 和 int
我认为这将非常简单,但它提出了一些困难。如果我有
我如何将它们组合成一个字符串"John21"
?
c# - 整数格式,填充到给定长度
我需要将整数的输出填充到给定的长度。
例如,长度为 4 位,整数 4 的输出是“0004”而不是“4”。如何在 C# 2.0 中做到这一点?