“256”의 이진 표현은 무엇입니까? [닫은]


15

10 진수를 2 진수로, 2 진수를 10 진수로 변환 할 수 있습니다. 그러나 숫자 "256"을 어떻게 표현할 수 있습니까?

255 = 11111111

1 바이트는 8 진 숫자 (비트)를 초과 할 수 없습니다. 이것이 어떻게 가능한지?


3
@Serious는 이미 말했다. 컴퓨터는 0부터 계산을 시작하기 때문에 비트가 하나 더 필요합니다. "
수화

2
나는 당신이 실제로 알고 싶은 것을 말하기가 어렵 기 때문에 이것을 "진짜 질문이 아닙니다"라고 닫았습니다. 숫자의 이진 표현을 알고 싶습니까? 바이트에 맞지 않아도 숫자가 어떻게 존재할 수 있는지 궁금하십니까? 데이터가 비트와 바이트로 어떻게 저장되는지 궁금하십니까? 예, 1 바이트는 8 비트를 초과 할 수 없습니다. 바이트의 정의이기 때문입니다. 그러나 이것이 일반적으로 숫자에 대한 제한을 부과하지는 않습니다.
Der Hochstapler

8 비트에서 256을 나타낼 수 없습니다.
Overmind

답변:


40

256을 이진수로 표현하는 방법을 요청하지만, 사람들이 저장하는 가장 큰 숫자가 255 일 때 바이트가 256 개의 다른 숫자를 저장할 수 있다고 말하는 이유가 궁금합니다. Claudiop이 말했듯이 컴퓨터가 0부터 시작하기 때문에 0 실제로 첫 번째 숫자, 1은 두 번째, 2는 세 번째 ... 255는 256입니다.

또한 11111111은 부호없는 바이트에 대해서만 255입니다. 부호있는 바이트가있는 경우 (부호 값은 음수 값을 보유 할 수있는 값임) 11111111은 실제로 -1입니다. http://en.wikipedia.org/wiki/Two's_complement를 참조하십시오 . 2의 보수가 작동하는 방식으로, 양수에 음수를 추가하면 0이됩니다. 다른 사람들이 말했듯이, 11111111에 비트를 추가하고 데이터 유형이 8 비트 만 지원할 수 있으면 마지막 비트가 오버플로되고 부호있는 바이트의 경우 값의 범위는 -128에서 127 사이입니다. 128 개의 음수 + 0 + 127 개의 양수 = 256 개의 숫자입니다.

부호있는 값의 경우 첫 번째 비트는 "sign"비트입니다. 이 비트가 설정되면 숫자는 음수입니다. 10000000은 음수, 01000000은 양수, 11111111은 음수, 01111111은 양수 ...

Windows를 사용하는 경우 (Mac에서도 가능) 계산기를 열고 프로그래머 모드로 전환하고 sbyte를 선택한 다음 비트를 가지고 십진수 표현과 어떻게 관련이 있는지 확인할 수 있습니다.

소수와 이진수로 256을 표시하는 Windows 계산기


12

이를 나타내려면 2 바이트가 필요합니다. 256 = 00000001 00000000


11

이미 알고 있듯이 255d (10 진수)는 11111111b (2 진)와 같습니다. 이제 값에 1을 추가하려면 두 가지 가능성이 있습니다.

8 비트 만 있습니다. 이 경우 소위 오버플로 가 발생합니다. 따라서 "내부적으로"1이 추가되어 100000000b (9 비트의 256d)가됩니다. 그러나 8 비트 만 사용할 수 있으므로 하위 8 비트는 "반환"됩니다. 따라서 0d = 0b로 끝납니다 (특별 오버플로 플래그는 대부분의 컴퓨터 아키텍처에서 부수적으로 설정됩니다).

이것을 손가락으로 계산하는 것과 동일하게 생각하십시오. 손가락이 9d라고 상상해보십시오. 이제 손가락을 하나 더 추가하십시오. 10으로 끝납니다. 하나 더 추가하려면 어떻게해야합니까?

다른 가능성은 8 비트 이상을 사용할 수 있다는 것입니다. 이 경우 시작 부분에 숫자를 하나 더 추가하면 결과는 실제로 100000000b = 256d입니다.

바이트는 컴퓨터 시스템 (메모리 시스템)이 처리 할 수있는 가장 작은 "단위"입니다. 즉, 단일 비트 만 알고 싶다면 메모리 시스템에 주소에서 특정 바이트를 제공하도록 요청한 다음 관심있는 비트의 값을 파악해야합니다.

그러나 8 비트가 바이트를 구성하는 것과 같은 방식으로 더 큰 데이터 유형이 있습니다. 2 바이트는 워드 (16 비트)를 구성하고 2 워드 (4 바이트, 32 비트)는 이중 워드를 구성합니다. 그리고 현재 표준 64 비트 아키텍처에는 64 비트 데이터 유형 (레지스터라고도 함)이 있습니다.


예, 컴퓨터는 64 비트를 8 개의 개별 바이트 그룹으로 생각하지 않고 64 비트로 구성된 단일 단위로 생각합니다. 예를 들어, 부호있는 값이있는 경우 해당 64 비트 중 하나만 부호 비트입니다.
Mr Lister

5

100000000이며 둘 이상의 바이트가 필요합니다. 실제로 9 비트가 필요합니다.


0

비트 이동 연산 ( 이진 표현 의 엔디안 에 따라 왼쪽 또는 오른쪽)으로 이를 나타낼 수 있습니다 . 예를 들어이 하나의 라이너는 큰 엔디안 표현 (가장 중요한 바이트 우선)에 사용됩니다.

1 << 8

부호없는 바이트 는 [0-255] 범위를 포함하는 256 개의 값만 보유 할 수 있습니다. 값 256의 경우 더 큰 값 (예 : 정수)을 보유 할 수있는 데이터 유형을 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.