“死牛肉”是什么意思?

问题描述 投票:0回答:8

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

我的理解正确吗?还是有更重要的意义?

ipv6
8个回答
143
投票

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

“Dead Beef”是编程中非常流行的句子,因为它仅由字母 a-f 组成,这些字母用于十六进制表示法。句子开头和中间的冒号使该句子成为(理论上)有效的 IPv6 地址。


96
投票

0xDEADBEEF
的价值具有三个实际好处,主要针对旧系统。像我这样的老汇编程序/C 黑客会使用它来填充未分配的内存以解决内存问题。此外,它也是俚语“死肉”的双关语。如果
0xDEADBEEF
最终出现在他的指针中,那么程序员就死定了。我祝贺第一个想到使用该值
0xDEADBEEF
的人。它在很多方面都很聪明。

出于实际原因,首先,它在十六进制内存转储中更明显,因为它实际上拼写单词而不是随机十六进制值。

其次,如果该值最终出现在指针中,则更有可能引发内存超出范围故障。无论系统的字节序如何,

0XDEADBEEF
的地址都超出了系统的地址范围(我们现在谈论的是上世纪的系统)。

第三,对于需要均匀边界指针值来访问 16/32/64 位数据的系统,更有可能引发故障。该值更容易出错,因为两个 16 位值 (

DEAD
,
BEEF
) 都是奇数。


59
投票

这是一个仅使用字母 A-F 组成的表达式,通常在需要可识别的十六进制数字时使用。某些系统将其用于各种目的,例如显示已释放且不应再次引用的内存。在调试器中显示的该值可能表明您犯了错误。来自维基百科

0xDEADBEEF(“死牛肉”)被 IBM RS/6000 系统、32 位 PowerPC 处理器上的 Mac OS 和 Commodore Amiga 用作神奇的调试值。在 Sun Microsystems 的 Solaris 上,它标记已释放的内核内存。在 Alpha 处理器上运行的 OpenVMS 上,按 CTRL-T 可以看到 DEAD_BEEF。

数字 0xDEADBEEF 等于难以识别的十进制数 3735928559(无符号)或 -559038737(有符号)。


26
投票

由于 IPv6 地址是用十六进制表示法编写的,因此您可以在地址中使用“Hexspeak”(数字 0-9 和字母 a-f)。

您可以使用许多单词作为有效地址,以便更好地记住它们。

如果你

ping6 www.facebook.com -n
你会得到类似“2a03:2880:f01c:601:face:b00c:0:1”的信息。

以下是一些示例:

  • :affe::(Affe - 德语中猴子的意思 - 出现在管理委员会的 vlan 中)
  • :1bad:babe::(一个坏宝贝 - 在 smtp 蜜罐中看到)
  • :badc:ab1e::(电缆损坏 - 被视为不安全 VLAN 的子网)
  • :da7a::(数据 - 在文件服务器中可见)
  • :d1a1::(拨号 - VPN 拨入时可见)

15
投票

它也用于调试目的。

以下是其中一些值的便捷列表:

http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values


4
投票

人们通常用它来表示虚拟值。我认为它主要是在 NULL 指针概念出现之前使用的。


3
投票

这是一个在很多地方使用的神奇数字,因为它也恰好可以用英语阅读,这使得它脱颖而出。 维基百科上有部分列表。


2
投票

它被用作在内存中存储一系列十六进制字节(0xde、0xad、0xbe、0xef)的模式。您可以查看内存是否由于硬件故障、缓冲区溢出等而损坏。

© www.soinside.com 2019 - 2024. All rights reserved.