“死牛肉”是什么意思?

时间:2010-05-25 18:08:15

标签: ipv6

“死牛肉”这个词是什么意思?我是从面试问题中读到的。它与ipv6有关。我想它可能是一个随机的十六进制数字用于例子,如“快速的棕色狐狸跳过懒狗”。

我的理解是否正确?或者它有更重要的意义?

9 个答案:

答案 0 :(得分:95)

http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef

“死牛肉”在编程中是一个非常流行的句子,因为它仅使用字母a-f构建,它们以十六进制表示法使用。句子开头和中间的冒号使这句话成为(理论上)有效的IPv6地址。

答案 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"。

以下是一些例子:

  • :affe ::(Affe - 猴子的德语 - 在管理委员会的vlan上看到)
  • :1bad:宝贝::(一个坏宝贝 - 在smtp-honeypot上看到)
  • :badc:ab1e ::(电缆不良 - 被视为不安全vlan的子网)
  • :da7a ::(数据 - 见文件服务器)
  • :d1a1 ::(拨号 - 用于VPN拨入)

答案 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通常填充在内存数组中,以便在错误指向或知道缓冲区运行等时发生任何异常,