“死牛肉”是什么意思?

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

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

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

“死牛肉”在编程中是非常stream行的句子,因为它只能用hex表示的字母af构build。 在句子的开头和中间的冒号使这句话(理论上的)有效的IPv6地址。

这是一个只用字母AF组成的expression式,当需要一个可识别的hex数时经常使用。 一些系统将其用于各种目的,例如显示已经被释放的内存,不应该再次被引用。 在debugging器中,这个值显示出来可能是一个错误。 维基百科 :

IBM RS / 6000系统使用0xDEADBEEF(“死牛肉”),32位PowerPC处理器上的Mac OS以及Commodore Amiga作为魔术debugging值。 在Sun Microsystems的Solaris上,它标记了释放的内核内存。 在Alpha处理器上运行的OpenVMS上,按CTRL-T可以看到DEAD_BEEF。

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

0xDEADBEEF的值有三个实际的好处,主要是旧的系统。 和我一样,旧的汇编程序/ C黑客会用它来填充未分配的内存来解决内存问题。 此外,这是俚语“死肉”的双关语。 程序员死了,如果DEADBEEF摆在他的指针。 我祝贺那个首先想到使用DEADBEEF价值的人。 这在很多方面都很聪明。

至于实际的原因,首先,它在hex内存转储中更为明显,因为它实际上是拼写单词而不是随机的hex值。

其次,如果这个值在一个指针中出现,则更可能引发一个内存超出范围的错误。 DEADBEEF的地址超出了系统的地址范围(我们正在谈论上个世纪的系统),而不pipe系统的endian。

第三,在需要甚至边界指针值的系统上访问16/32/64位数据的可能性更大。 由于16位值(DEAD,BEEF)都是奇数,所以该值更可能出错。

它也用于debugging目的。

这里有一些这些值的便利列表:

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

由于IPv6-Adresses是用hex表示法编写的,因此可以在Adresses中使用“Hexspeak”(数字0-9和字母af)。

有很多单词可以作为有效的地址来更好地使用它们。

如果你ping6 www.facebook.com -n你会得到像“2a03:2880:f01c:601: face:b00c :0:1”的东西。

这里有些例子:

  • :affe ::(情感 – 德语的猴子 – 在pipe理委员会的vlan看到)
  • :1bad:宝贝::(一个坏宝贝 – 看到一个smtp蜜jar)
  • :badc:ab1e ::(坏电缆 – 看作是一个不安全的VLAN的子网)
  • :da7a ::(数据 – 显示文件服务器)

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

这是一个在不同地方使用的神奇数字,因为它也恰好是英文可读的,使其脱颖而出。 维基百科上有部分列表。

它被用作一系列hex字节(0xde,0xad,0xbe,0xef)的内存模式。 你可以看到内存是否因硬件故障,缓冲区溢出等而损坏

0xDEADBEEF通常填充在内存数组中,以便在错误地指向或知道缓冲区溢出等任何exception时,