标签: magic-numbers

23,148,855,308,184,500是一个神奇的数字,还是纯粹的机会?

新闻报道等这一指示上述号码可能出现的编程错误.

一名男子在美国突然出现在当地的加油站购买一包香烟 - 但却发现他的信用卡收费为23,148,855,308,184,500美元.

这是23亿美元(14亿英镑) - 是美国国债的很多倍.*

在十六进制中它是$ 523DC2E199EBB4,一见钟情似乎并不十分有趣.

任何人都有任何关于编程错误会导致这种情况的想法吗?

magic-numbers

556
推荐指数
7
解决办法
4万
查看次数

什么是神奇的数字,为什么它不好?

什么是神奇的数字?

为什么要避免?

有适合的情况吗?

language-agnostic magic-numbers

489
推荐指数
10
解决办法
24万
查看次数

常数0.0039215689代表什么?

我一直看到这个常量弹出各种图形头文件

0.0039215689
Run Code Online (Sandbox Code Playgroud)

它似乎与颜色有关吗?

这是Google的第一个热门话题:

void RDP_G_SETFOGCOLOR(void)
{
    Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f;
    Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f;
    Gfx.FogColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f;
    Gfx.FogColor.A = _SHIFTR(w1, 0, 8) * 0.0039215689f;
}

void RDP_G_SETBLENDCOLOR(void)
{
    Gfx.BlendColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f;
    Gfx.BlendColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f;
    Gfx.BlendColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f;
    Gfx.BlendColor.A = _SHIFTR(w1, 0, 8) * 0.0039215689f;

    if(OpenGL.Ext_FragmentProgram && (System.Options & BRDP_COMBINER)) {
        glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 2, Gfx.BlendColor.R, …
Run Code Online (Sandbox Code Playgroud)

c floating-point constants magic-numbers

308
推荐指数
2
解决办法
2万
查看次数

boost :: hash_combine中的幻数

所述boost::hash_combine模板函数采用一个散列(称为参考seed)和对象v.根据文档,它结合seedvby 的哈希

seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
Run Code Online (Sandbox Code Playgroud)

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

我敢打赌,这个加法有助于将相似的值广泛分开,因此探测哈希表不会崩溃,但有人可以解释这个神奇常数是什么吗?

c++ algorithm hash boost magic-numbers

86
推荐指数
2
解决办法
2万
查看次数

加载工作区时出现"错误的幻数"错误以及如何避免错误?

我试图加载我的R工作区并收到此错误:

Error: bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘WORKSPACE_Wedding_Weekend_September’ has magic number '#gets'
   Use of save versions prior to 2 is deprecated 
Run Code Online (Sandbox Code Playgroud)

我对技术细节并不特别感兴趣,但主要是我如何引起它以及如何在将来阻止它.以下是有关情况的一些注意事项:

  1. 我在一个在训练营分区上运行Windows XP的MacBook Pro上运行R 2.15.1.
  2. 这个工作区文件有明显的错误,因为它的重量只有~80kb,而我的其他文件通常都超过10,000
  3. 在周末,我在R中运行外部建模程序并将其输出存储到不同的对象.我在几天的过程中运行了几次模型迭代,例如output_Saturday < - call_model()
  4. 模型输出没有什么特别之处,它只是一个包含beta用于插槽,VC矩阵,模型规范等的列表.

workspace r magic-numbers

77
推荐指数
7
解决办法
12万
查看次数

猜猜0x564c是什么?

当我读取linux内核源码时,我发现一行说:

#define NCP_SUPER_MAGIC 0x564c/*猜猜看,0x564c是什么:-)*/

(564c)16 =(22092)10 =(53114)8 =(101011001001100)2

Wolfram | Alpha告诉我们22092 = 2 ^ 2*3*7*263 = 43*2 ^ 9 + 76

好的,所有的身体都有这个谜语的想法吗?

顺便说一下,这段代码出现在%linux-kernel-source%/ include/linux/magic.h的文件中

magic-numbers linux-kernel

26
推荐指数
1
解决办法
838
查看次数

如何从byte []中提取MimeType

我有一个可用于上传文件的网页.
现在我需要检查文件类型是否正确(zip,jpg,pdf,...).

我可以使用请求附带的mimeType,但我不信任用户,让我们说我想确保没有人能够上传以.jpg重命名的.gif文件
我认为在这种情况下我应该检查神奇的数字.
是一个我发现的java库,似乎实现了我需要的'从幻数中提取mimetype'.
这是一个正确的解决方案还是你的建议?

更新: 我找到了mime-util项目,它似乎非常好并且是最新的!(也许比Java Mime Magic Library更好?)
这是一个可以帮助你提取mime类型的实用程序项目列表

java file magic-numbers mime-types

25
推荐指数
2
解决办法
3万
查看次数

计算机编程中的"神奇数字"是什么?

当人们谈论在计算机编程中使用"魔术数字"时,他们的意思是什么?

language-agnostic programming-languages magic-numbers

23
推荐指数
3
解决办法
3447
查看次数

43679是一个神奇的数字吗?

最近我正在调查这个问题:在DataGridView C#中存储长值.经过一些测试后,我发现DataGridViewCell不会显示任何长度大于43679个字符的文本,即使该值实际存储在单元格中,您也可以通过编程方式访问它.

实际上,这也被报告为以下错误SQL Server Management Studio:SSMS - 无法在网格模式下从列中粘贴超过43679个字符.

我想这个限制旨在防止UI渲染上的任何重载.但我的问题是:

  1. 为什么要使用这个确切的值?
  2. 有这个限制的文件吗?

magic-numbers winforms

22
推荐指数
1
解决办法
1625
查看次数

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

我正在从头开始设计二进制文件格式,我想在开头包含一些魔术字节,以便可以轻松识别它.我该如何选择哪个字节?我不知道任何魔法数字的中央注册表,所以它只是选择一个相当随机的东西,而不是已经通过附近的UNIX盒子上的文件命令识别出来了吗?

file-format file magic-numbers

15
推荐指数
1
解决办法
1989
查看次数