"死牛肉"这个词是什么意思?我是从面试问题中读到的.它与ipv6有关.我想它可能是一个随机的十六进制数字用于例子,如"快速的棕色狐狸跳过懒狗".
我的理解是否正确?或者它有更重要的意义?
Dus*_*ine 98
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"死牛肉"在编程中是一个非常流行的句子,因为它仅使用字母af构建,其以十六进制表示法使用.句子开头和中间的冒号使这句话成为(理论上)有效的IPv6地址.
Mar*_*ers 43
它是仅使用字母AF的组合表达式,通常在需要可识别的十六进制数时使用.某些系统将其用于各种目的,例如显示已释放且不应再次引用的内存.在调试器中,此值显示可能表示您发生了错误.来自维基百科:
0xDEADBEEF("死牛肉")由IBM RS/6000系统,32位PowerPC处理器上的Mac OS和Commodore Amiga使用,作为神奇的调试值.在Sun Microsystems的Solaris上,它标记了释放的内核内存.在Alpha处理器上运行的OpenVMS上,按CTRL-T可以看到DEAD_BEEF.
数字0xDEADBEEF等于不易识别的十进制数3735928559(无符号)或-559038737(有符号).
BSa*_*ita 37
0xDEADBEEF的值有三个实际好处,主要用于旧系统.像我这样的旧汇编程序/ C黑客会使用它来填充未分配的内存以哄骗内存问题.此外,这是俚语"死肉"的双关语.如果DEADBEEF在他的指针中结束,程序员就死了.我祝贺那个第一个想到使用价值DEADBEEF的人.它在很多方面都很聪明.
至于实际原因,首先,它在十六进制内存转储中更明显,因为它实际上拼写单词而不是随机十六进制值.
其次,如果值在指针中结束,则更有可能引发内存超出范围的错误.DEADBEEF的地址超出了系统的地址范围(我们现在谈论的是上个世纪的系统),无论系统的endian如何.
第三,它更有可能在需要偶数边界指针值来访问16/32/64位数据的系统上引发故障.该值更可能出错,因为两个16位值(DEAD,BEEF)都是奇数.
Mar*_*itl 16
由于IPv6-Adresses是用Hex-notation编写的,因此您可以在Adresses中使用"Hexspeak"(数字0-9和字母af).
您可以使用许多单词作为有效地址来更好地理解它们.
如果你ping6 www.facebook.com -n得到类似"2a03:2880:f01c:601:face:b00c:0:1"的东西.
这里有些例子:
Sco*_*ott 13
它也用于调试目的.
以下是其中一些值的便捷列表:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values