Post

진법과 비트

진법

10진법 : 실생활에서 사용하는 각 자릿수를 0~9까지 나타내는 진법
2진법 : 가장 기본적인 전기적 신호의 On/Off 상태를 0과 1로 표현한 진법
16진법 : 16개 (0~9, A~F)의 문자로 수를 표현하는 진법

비트

비트 (bit) : 컴퓨터에서 사용하는 데이터의 최소 단위 바이트 (byte) : 8비트로 구성된 데이터의 단위, 메모리에 저장되는 최소 단위

1바이트는 256가지 수를 표현할 수 있다. (10진수로 255, 2진수로 11111111, 16진수로 FF까지 나타낼 수 있다.)


최상위 비트 (MSB) : Most Significant Bit의 약자, 비트로 구성된 이진 데이터에서 가장 왼쪽에 있는 비트, 숫자의 가장 큰 영향을 미친다.

최하위 비트 (LSB) : Least Significant Bit의 약자, 비트로 구성된 이진 데이터에서 가장 왼쪽에 있는 비트, 숫자의 가장 작은 영향을 미친다.

부호 비트 : MSB가 0이면 양수, 1이면 음수를 나타냄. 부호를 가지는 데이터를 Signed 데이터, 부호없이 양수만 나타내는 데이터를 unsigned 데이터라 부른다.


바이트 오더링

바이트 오더링 (Byte Ordering) : 2바이트 이상의 데이터는 메모리에 연속적으로 저장되는데, 이때 각 바이트가 메모리에 정렬되는 방식을 바이트 오더링이라고 부른다. 바이트 오더링의 방식은 크게 빅 엔디안리틀 엔디안이 있다.

빅 엔디안 (Big Endian) : 큰 바이트부터 낮은 주소에 저장

리틀 엔디안 (Little Endian) : 작은 바이트부터 낮은 주소에 저장

비트 연산

비트 연산 : 피연산자를 2진수로 표현하여 비트 단위로 연산하는 것


논리 연산자설명
x | y둘 중 하나라도 참이면 결과는 참입니다. (OR)
x && y둘 다 참이면 결과는 참입니다. (AND)
!x참이면 결과는 거짓, 거짓이면 결과는 참입니다. (NOT)


비트 연산자설명
x | y두 비트 중 하나라도 1이면 결과는 1입니다. (OR)
x & y두 비트 모두 1이면 결과는 1입니다. (AND)
x ^ y두 비트가 같으면 결과는 0, 다르면 결과는 1입니다. (XOR)
~x비트가 0이면 결과는 1, 1이면 결과는 0으로 모든 비트를 반전시킵니다. (NOT)


시프트 연산자설명
x « n비트를 n만큼 왼쪽으로 이동합니다.

오른쪽 빈 칸은 모두 0으로 채웁니다.

== x * 2n
x » n

(산술 시프트)
비트를 n만큼 오른쪽으로 이동합니다.

왼쪽 빈 칸은 가장 왼쪽에 있던 비트(MSB)와 동일한 비트 값으로 채웁니다.

(양수는 양수, 음수는 음수로 부호가 유지됩니다.)

== x / 2n
x »> n

(논리 시프트)
비트를 n만큼 오른쪽으로 이동합니다.

왼쪽 빈 칸은 모두 0으로 채웁니다.

(음수는 부호가 유지되지 않습니다.)

출처 : Dreamhack

This post is licensed under CC BY 4.0 by the author.