问题标签 [magic-numbers]

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.

0 投票
2 回答
192 浏览

xml - 有没有办法从 XML 模式中删除幻数?

我有一个定义了某些类型的 WSDL。一些元素接受元素列表,并且在服务返回时,我也有带有值列表(或其他元素)的元素。

结果,我在 XSD 中有一些神奇的数字(例如 minOccurs="10"、maxOccurs="250" 等)。这些值 10、250 等在整个 XSD 类型中重复出现。

有没有办法将它们声明为某种常量?然后按名称将它们重用于 minOccurs 和 maxOccurs 属性?

0 投票
2 回答
3049 浏览

file - 如何为我的文件格式选择一个好的幻数?

我正在从头开始设计二进制文件格式,我想在开头包含一些魔术字节,以便可以轻松识别它。我该如何选择哪些字节?我不知道任何魔数的中央注册表,所以它只是挑选一些相当随机的东西,例如附近的 UNIX 机器上的文件命令尚未识别的问题吗?

0 投票
10 回答
2102 浏览

c++ - 如何避免全局变量和幻数?

我知道并理解全局变量和幻数是编程时要避免的事情,尤其是随着项目中代码量的增加。但是,我想不出避免两者的好方法。

假设我有一个预先确定的表示屏幕宽度的变量,并且在多个文件中需要该值。我可以...

但这是一个神奇的数字。但为了避免这种情况,我会做...

现在我正在使用一个全局变量。这里有什么解决方案?

0 投票
5 回答
2815 浏览

c++ - 我应该在 C++ 中使用枚举或多个 const 作为非顺序常量吗?

我正在编写将文件 io 函数集从 c 移植到 c++ 类中。“幻数”(未命名的常数)比比皆是。

这些函数读取一个文件头,该文件头具有许多特定条目,其位置当前由幻数表示。

几年前,一位资深程序员告诉我,使用“幻数”本质上是邪恶的,因此,我一直试图避免在我的端口中使用未命名的常量。所以我想创建某种存储条目的常量列表。

到目前为止,我已经提出了两个看起来相对安全的解决方案——使用命名空间封闭的常量集或命名空间封闭的枚举。

我可以安全地使用这两种解决方案吗?一个比另一个有什么优势吗?

例如
选项 1

选项 2

有没有办法防止重复,如果我由于将来更新文件头而改变位置,但忘记改变其中一个?

请保持事实性和非主观性。如果没有您知道的优势,请随时回答。

注意:当然,在我的实际实现中,我会使用更具描述性的名称;我只是将事物称为 item_<#>_... 以举例说明...

0 投票
1 回答
1634 浏览

portable-executable - 关于PE的幻数

是什么ROM image

0 投票
1 回答
999 浏览

linux - 是否有任何与 Unix `file` 命令兼容的“魔术”文件类型标头集合?

我正在尝试找到一个神奇的文件类型标头集合,可以将其提供给文件命令,file -m但无济于事。

发行版预包含的文件 Heaers 并不多,无法检测 Internet 上的所有文件类型。

有没有人想出任何集合,而不是默认列表?

谢谢!

0 投票
1 回答
149 浏览

javascript - 为什么在 Safari 中使用 JavaScript 计划 22034 年 Q1 不可靠?

在浏览器端(Safari 5.0.1)计算遥远的未来日期时有一些可疑之处,将字符串传递给Date()构造函数:

我将其缩小到 22034 年的 2 月至 3 月的过渡:

在任何以后的 date中提供它,构造函数总是返回一个 Date 对象关闭一天!

更早的日期呢?二月的最后一天看起来不错:

我的直觉告诉我,这看起来像是与闰年相关的错误。但是这里的模式是什么,这个错误的解释是什么?


编辑:

如果我们要求 2 月 29 日怎么样?

这将返回 2 月 + 1 天的最后一天(其标准行为)。

0 投票
1 回答
3060 浏览

c++ - Excel NORMDIST 函数的 C++ 实现中的幻数

在寻找 Excel NORMDIST(累积)函数的 C++ 实现时,我在网站上找到了这个

我有限的数学知识让我想到了泰勒级数,但我无法确定这些数字的来源:

0.2316419, 0.31938153, -0.356563782, 1.781477937, -1.821255978, 1.330274429

任何人都可以建议它们来自哪里,以及它们是如何得到的?

0 投票
2 回答
24842 浏览

c++ - boost::hash_combine 中的幻数

boost::hash_combine模板函数采用对哈希(称为seed)和对象的引用v。根据文档,它与byseed的哈希相结合v

我可以看到这是确定性的。我明白为什么要使用 XOR。

我敢打赌,添加有助于将相似的值广泛地映射,因此探测哈希表不会崩溃,但有人能解释一下魔法常数是什么吗?

0 投票
4 回答
2091 浏览

c - 为内存数据结构寻找一个安全的幻数


我正在实现一个堆分配器(malloc),我需要选择一个幻数来检查给定的指针是否指向我分配的数据结构。对我来说,显然没有任何幻数可以被认为是完全安全的(如果检查了这个数字,我可以确定指向我的数据结构之一),但也许我错过了一些东西,所以......如果有人可以帮助和把我梦想的数量带给我,我真的很感激。提前谢谢。