“死牛肉”这个词是什么意思?我是从面试问题中读到的。它与ipv6有关。我想它可能是一个随机的十六进制数字用于例子,如“快速的棕色狐狸跳过懒狗”。
我的理解是否正确?或者它有更重要的意义?
答案 0 :(得分:95)
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
答案 1 :(得分:41)
这是一个仅使用字母A-F的组合表达式,通常在需要可识别的十六进制数时使用。某些系统将其用于各种目的,例如显示已释放且不应再次引用的内存。在调试器中,此值显示可能表示您发生了错误。来自Wikipedia:
0xDEADBEEF(“死牛肉”)由IBM RS / 6000系统,32位PowerPC处理器上的Mac OS和Commodore Amiga使用,作为神奇的调试值。在Sun Microsystems的Solaris上,它标记了释放的内核内存。在Alpha处理器上运行的OpenVMS上,按CTRL-T可以看到DEAD_BEEF。
数字0xDEADBEEF等于不易识别的十进制数3735928559(无符号)或-559038737(有符号)。
答案 2 :(得分:33)
0xDEADBEEF的值有三个实际好处,主要用于旧系统。像我这样的旧汇编程序/ C黑客会使用它来填充未分配的内存以哄骗内存问题。此外,这是俚语“死肉”的双关语。如果DEADBEEF在他的指针中结束,程序员就死了。我祝贺那个第一个想到使用价值DEADBEEF的人。它在很多方面都很聪明。
出于实际原因,首先,它在十六进制内存转储中更明显,因为它实际上拼写单词而不是随机十六进制值。
其次,如果值在指针中结束,则更有可能引发内存超出范围的错误。 DEADBEEF的地址超出了系统的地址范围(我们现在谈论的是上个世纪的系统),无论系统的结尾如何。
第三,它更有可能在需要偶数边界指针值来访问16/32/64位数据的系统上引发故障。该值更可能出错,因为两个16位值(DEAD,BEEF)都是奇数。
答案 3 :(得分:16)
由于IPv6-Adresses是用Hex-notation编写的,你可以使用" Hexspeak"地址中的(数字0-9和字母a-f)。
您可以使用多个单词作为有效地址来更好地理解它们。
如果你ping6 www.facebook.com -n
,你会得到类似" 2a03:2880:f01c:601: face:b00c :0:1"。
以下是一些例子:
答案 4 :(得分:13)
它也用于调试目的。
以下是其中一些值的便捷列表:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
答案 5 :(得分:3)
人们通常用它来表示虚拟值。我认为它主要是在使用NULL指针之前使用的。
答案 6 :(得分:2)
这是一个在各个地方使用的神奇数字,因为它也恰好是英文可读,使其脱颖而出。 Wikipedia上有部分列表。
答案 7 :(得分:2)
它被用作一种模式,在内存中存储为一系列十六进制字节(0xde,0xad,0xbe,0xef)。您可以看到内存是否因硬件故障,缓冲区溢出等而损坏。
答案 8 :(得分:-1)
0xDEADBEEF通常填充在内存数组中,以便在错误指向或知道缓冲区运行等时发生任何异常,