2 바이트로 몇 개의 숫자를 표현할 수 있나요?


최상의 답변

65536.

많은 답변이 “당신은 0에서 65535까지의 숫자”이지만 실제로는 임의적입니다. -5에서 65530까지의 모든 숫자 또는 2에서 131072까지의 모든 짝수 또는 모든 숫자 1, 1/2, 1/3,…, 1/65536을 나타낼 수도 있습니다. 그러나 문제는 몇 개의 고유 숫자가 2 바이트로 표현 될 수 가능한 입니다.

숫자를 나타 내기 위해 2 바이트가 사용된다면, 이는 2 바이트가 취할 수있는 65536 개의 가능한 고유 값을이 값이 나타내는 숫자로 매핑하는 일부 함수를 정의한다는 것을 의미합니다.

If 그 함수는 주입식이면 함수의 이미지는 도메인과 같은 크기이므로 표현할 수있는 65536 개의 고유 한 숫자를 포함합니다. 함수가 인젝 티브가 아니면 (두 바이트의 여러 값이 동일한 숫자에 매핑 됨) 이미지가 도메인보다 작으므로 이러한 체계는 65536 개 미만의 고유 숫자를 나타냅니다.

(이런 일이 발생할 수있는 한 가지 실제 시나리오는 1 비트가 부호 비트로 사용되는 경우입니다.이 경우 숫자 0에 대해 두 가지 다른 표현이있는 경우가 많습니다. 하나는 부호 비트가 설정되고 다른 하나는 부호 비트가 지워집니다.)

Answer

바이트는 8 비트 세트입니다. 하나의 비트는 1 또는 0이 될 수 있습니다. 바이트는 예를 들어 다음과 같습니다.

11110000

숫자 체계의 이름은 이진수입니다. 다음 공식을 사용하여 십진수의 모든 이진수를 변환 할 수 있습니다.

오른쪽에서 왼쪽으로 :

(첫 번째 숫자 값) * 2 ^ 0 + (두 번째 숫자 값) * 2 ^ 1 + (세 번째 숫자 값) * 2 ^ 2 +…

바이트 길이는 0에서 255까지 2 ^ 8 = 256입니다.

그러나 2 바이트 변환에는 더 많은 숫자가 포함되므로 512가 아닙니다. 2 바이트의 경우 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536

최대 값은 길이-1입니다. 따라서 최대 값은 65535입니다!

영어가 안 좋아서 죄송합니다 🙂

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다