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