
2진수는 0과 1 두 개의 숫자만을 사용하여 숫자를 나타내는 방법이다. 컴퓨터에서 모든 데이터는 2진수 형태로 저장되고 처리된다.
2진수는 2의 거듭제곱으로 각 자리가 표현됨
16진수는 0부터 9까지의 숫자와 A부터 F까지의 문자를 사용하여 숫자를 나타내는 방법이다. 각 자리는 16의 거듭제곱으로 표현된다.
10진수 15는 16진수 F
10진수 16은 16진수 10이다. 즉, 자리수가 올라간다는 말
그리고 각자리는 16의 거듭제곱으로 계산
FF가 255가 되는 이유는 15x15가 아니라,
15(15x1(16^0))+240(15x16(16^1)) = 255
같은 이유로 FFFF는
15(15x1(16^0))+240(15x16(16^1))+3840(15x256(16^2))+61440(15x4096(16^3)) = 65535
2진수 네자리 == 16진수 한자리
이는 둘다 4비트로 표현되기 때문에 가능하다.
2진수 네 자리: 2진수는 0과 1로 구성되며, 네 자리를 가질 때 가능한 조합은 총 16가지입니다. 예를 들어, 0000부터 1111까지 모든 경우를 포함
16진수 한 자리: 16진수는 0부터 F까지의 숫자와 문자로 표현됩니다. 즉, 16진수 한 자리는 0부터 15까지의 값을 나타낼 수 있습니다. 숫자 10은 A, 15는 F로 표현됩니다.
8비트가 1바이트이므로 2진수 여덟자리, 16진수 두자리가 1바이트
아래의 값들을 순서대로 나열되었다고 봤을 때 바이트 배열이 어떻게 되는지?
int a = 280,464,813;
char b = 100;
bool c = true;
bool d = false;
short e = 500;
int a → 10 B7 8D AD
char b → 00 64
bool c → 01
bool d → 00
short e → 01 F4
순서대로 나열하라고 했으니까
10 B7 8D AD 00 64 01 00 01 F4 (빅 엔디안)
AD 8D B7 10 64 00 00 01 F4 01 (리틀 엔디안)
네트워크 통신에는 보통 빅 엔디안을 사용
C#은 리틀 엔디안