나무 숲

헷갈리지만 헷갈리면 안되는 것 1) 비트/바이트/니블/워드 본문

Career/프로젝트 · 팁 · 후기

헷갈리지만 헷갈리면 안되는 것 1) 비트/바이트/니블/워드

wood.forest 2017. 2. 13. 00:01

헷갈리지만 헷갈리면 안되고 빠르게 생각, 계산할 수 있어야 좋은 내용






비트 (bit)

 0 (이진수에서)

 1 bit

 1 (이진수에서)


0 또는 1인 값

그렇다면 010110은?? 6비트

6비트로 표현 가능한 2진수의 갯수는??? (unsigned일때) 2^6가지 => 64가지

6비트로 표현 가능한 십진수의 갯수??? (unsigned일때) => 64

그렇다면 위 십진수의 범위??? =>0~63


그리고 추가적으로

LSBLeast Significant Bit

MSBMost Significant Bit의 약자로, 

이름 그대로 가장 덜 중요하고 가장 중요한 비트를 의미한다.

그렇다면 위 010110에서의 MSB와 LSB가 무엇일까?

그 비트의 가장 큰 부분을 차지하는 비트가 MSB이고 가장 작은 부분을 차지하는 비트가 LSB.. 쉽게 말해서 가장 왼쪽 비트가 MSB 가장 오른쪽 비트가 LSB입니다. 부족하지만 궁금하신 분들을 위해 큰 부분을 차지~ 작은 부분을 차지~ 한다는 의미가 무엇인지 말씀드리겠습니다.. 생각해보면 위 이진수를 십진수로 표현하고자 할 때, 가장 왼쪽 비트는 (해당자리 비트)*(2^5)이고 오른쪽은 (해당자리 비트)*(2^0)입니다. 010110이라는 이진수는 십진수로 22인데, MSB가 0이므로써=32라는 숫자가 들어가지 않으므로서 32보다는 작은 22라는 숫자라는 뜻입니다.. 만약 MSB가 1이라면 54가 될 텐데 54와 22의 차이는 꽤 큽니다. MSB가 굉장히 큰 영향을 미치는 것을 알 수 있죠.. 22에서 LSB는 0인 상태인데, LSB가 1이 되어도 22에서 23이 되는 미미한 차이가 나타납니다.













바이트 (byte)

 8 bit

 1 byte


4바이트는?!!!!! ==> 8*4 = 32비트

c/c++ 언어에서 int(정수형)은 4바이트이다. 비트로 하면 32비트

unsigned일 때 해당 변수에 저장된 정수를 이진수로 바꾸면 최대 32비트까지만 저장된다는 의미로, 2^32까지 저장되는데 이는 십진수로 약 42억








+) 비트 바이트 안헷갈리면 좋은 점이 숫자를 다룰 때, 그 숫자가 얼마나 크느냐에 따라 어떤 자료형을 사용할지 알 수 있어서.. 라고 저는 아직은 그렇게 생각합니다;









니블 (nybble)

 4 bit

 1 nybble


1 니블은 4비트로 1바이트의 절반을 의미한다

많이 나오지는 않고 가끔 프로그래밍 문제풀기 할 때 무슨 수의 상위 니블을 구하시오~처럼 나온다

그러면 그 정수를 이진수로 변환했을 때 상위 4비트를 구하면 된다. 하위 니블은 하위 4비트

1 니블은 2^4 비트로, 16개의 이진수 가짓수를 갖는다

십진수 측에서 보면 16개의 십진수로, 0에서 15까지의 범위를 가질 수 있는... 따라서 하나의 16진수와 일치한다고 볼 수 있다



















워드 (word)

 32 bit

 1 word


해프 워드 (half word)

 16 bit

 1 half word


더블 워드 (double word)

 64 bit

 1 double word


위 세 가지는 주로 ARM을 공부하다보면 나온다





728x90
반응형
Comments