Steve Yegge의 기사에서 온 몸에서
응시자는 비트와 바이트가 무엇인지 알아야합니다. 그들은 이진수로 계산할 수 있어야한다. 예를 들어, 2 ^ 5 또는 2 ^ 10이 10 진수 인 것을 알려줄 수 있어야합니다. 당신이 2 ^ 16와 함께 물어볼 때 그들은 당신을 멍하게 쳐다 보지 않아야합니다. 특별한 숫자입니다. 그들은 그것을 알아야합니다.
나는 당신이 질문에서 인용 한 비트에서 벗어났습니다. 그것은 후보가 그것이 의미를 설명 할 수 있어야한다고 들었지만, 문맥 상 후보자들은 머리 꼭대기 에서 2 16 의 십진수 변환이 무엇인지 알아야한다고 말하고 있습니다.
이것의 중요성은 인간이 계산에 십진수를 사용하기 때문에 (특히 대부분의 상황에서) 대부분의 경우, 저장, 메모리 또는 문자 인코딩에 사용 되는 공통 바이트 블록의 대략적인 용량을 알아야 한다는 것입니다. 바이트는 8 비트이므로 가장 일반적인 것은 8, 16, 24, 32 및 64입니다.
현재 2 32 는 개발자가 처리하는 가장 일반적으로 발생하는 용량입니다. 나는 2 32 가 대략 40 억 (서명 된 경우 최대 값이 ~ 20 억) 이라는 것을 모르는 개발자들을 의심합니다 . 왜냐하면 그들은 데이터베이스에 얼마나 많은 레코드가 저장 될 수 있는지 대략 찾지 않았기 때문입니다. 32 비트 사용하는 int
기본 키에 대한들, 또는 32 비트 사용 된 코드 때 int
의 ID를, 날짜 등은 64 비트에 리팩토링해야합니다. 1
2 16 은 Java의 총 용량입니다 short
. (총 숫자 사이 -2 15 2 15 -1)
개발자는 마음에 8 비트가 무엇인지 알아야합니다. 많은 일반적인 사용법 중에 ASCII 문자 인코딩이 있습니다.
나는 프로그래머가 전혀 2 14 또는 2 18 을 알 것으로 기대하지는 않을 것입니다.하지만 아마도 2 16 을 알고있을 것입니다 . 정수를 쉽게 기억할 수있는 매우 일반적으로 발생하는 수와 짧은 수 (65536)이기 때문입니다.
1 : Call of Duty : MW2 또는 iPhone Game Center의 리더 보드를 탐색하면 최고 점수 값이 2,147,483,647 (2 31 -1, 부호있는 2 32 정수 의 최대 값) 인 사기꾼이 자주 나타납니다 .