"죽은 쇠고기"라는 단어는 무엇을 의미합니까? 인터뷰 질문에서 읽었습니다. ipv6과 관련이 있습니다. 예를 들어 "The quick brown fox jumps over the lazy dog"와 같이 임의의 16 진수 일 수 있다고 생각했습니다.
내 이해가 맞습니까? 아니면 더 중요한 의미가 있습니까?
"죽은 쇠고기"라는 단어는 무엇을 의미합니까? 인터뷰 질문에서 읽었습니다. ipv6과 관련이 있습니다. 예를 들어 "The quick brown fox jumps over the lazy dog"와 같이 임의의 16 진수 일 수 있다고 생각했습니다.
내 이해가 맞습니까? 아니면 더 중요한 의미가 있습니까?
답변:
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"Dead beef"는 16 진수 표기법으로 사용되는 af 문자로만 만들어 졌기 때문에 프로그래밍에서 매우 인기있는 문장입니다. 문장의 시작과 중간에있는 콜론은이 문장을 (이론적으로) 유효한 IPv6 주소로 만듭니다.
AF 문자 만 사용하여 구성된 표현으로 인식 가능한 16 진수가 필요할 때 자주 사용됩니다. 일부 시스템은 해제되어 다시 참조해서는 안되는 메모리를 표시하는 등 다양한 용도로 사용합니다. 디버거에서이 값이 표시되면 오류가 발생했다는 신호일 수 있습니다. 에서 위키 백과 :
0xDEADBEEF ( "죽은 쇠고기")는 IBM RS / 6000 시스템, 32 비트 PowerPC 프로세서의 Mac OS 및 Commodore Amiga에서 매직 디버그 값으로 사용됩니다. Sun Microsystems의 Solaris에서는 해제 된 커널 메모리를 표시합니다. Alpha 프로세서에서 실행되는 OpenVMS에서는 CTRL-T를 눌러 DEAD_BEEF를 볼 수 있습니다.
숫자 0xDEADBEEF는 인식하기 어려운 10 진수 3735928559 (부호 없음) 또는 -559038737 (부호 있음)과 같습니다.
0xDEADBEEF의 값은 대부분 구형 시스템에서 세 가지 실질적인 이점이 있습니다. 저처럼 오래된 어셈블러 / C 해킹은 메모리 문제를 해결하기 위해 할당되지 않은 메모리를 채우는 데 사용합니다. 또한 "죽은 고기"라는 속어의 말장난입니다. 프로그래머는 DEADBEEF가 그의 포인터에 들어가면 죽은 고기입니다. DEADBEEF라는 가치를 처음으로 생각한 사람을 축하합니다. 여러면에서 영리합니다.
실제적인 이유로, 첫째, 무작위 16 진수 값과 반대로 단어를 실제로 철자하기 때문에 16 진수 메모리 덤프에서 더 눈에 띕니다.
둘째, 값이 포인터에 표시되면 메모리 범위를 벗어난 오류가 발생할 가능성이 더 큽니다. DEADBEEF의 주소는 시스템의 엔디안에 관계없이 시스템의 주소 범위를 벗어났습니다 (지금은 지난 세기 시스템에 대해 이야기하고 있습니다).
셋째, 16/32/64 비트 데이터에 액세스하기 위해 경계 포인터 값이 필요한 시스템에서 오류를 유발할 가능성이 더 높습니다. 16 비트 값 (DEAD, BEEF)이 모두 홀수이기 때문에 값이 잘못 될 가능성이 더 큽니다.
IPv6 주소는 16 진수 표기법으로 작성되므로 주소에 "Hexspeak"(숫자 0-9 및 문자 af)를 사용할 수 있습니다.
더 나은 모모 화를 위해 유효한 주소로 사용할 수있는 여러 단어가 있습니다.
당신이 경우 ping6 www.facebook.com -n
당신은 같은 것을 얻을 것이다 "2a03을 : 2880 : f01c을 : 601 : 얼굴 : b00c : 0 : 1".
여기 예시들이 있습니다 :
디버깅 목적으로도 사용됩니다.
다음은 이러한 값 중 일부에 대한 편리한 목록입니다.
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
영어로도 읽을 수있어 눈에 띄기 때문에 여러 곳에서 사용되는 매직 넘버입니다. Wikipedia에 일부 목록이 있습니다 .