본문 바로가기
임베디드 개발/펌웨어

LSB, MSB

by eteo 2023. 1. 31.

출처 : https://blog.naver.com/ansdbtls4067/220886567257

 

LSB와 MSB란 무엇인가?

안녕하세요? 땜쓰 인사드립니다. 오늘은 LSB와 MSB에 대해서 함께 알아보도록 하겠습니다. 우선 이들...

blog.naver.com

 

 

 

 

LSB 와 MSB

 

LSB는 Least Significant Bit의 약자로서 하나의 데이터 형에서의 가장 낮은 위치의 Bit를 의미한다.

MSB는 Most Significant Bit의 약자로 어떠한 데이터 형의 최상위 비트를 의미한다.

 

 

 

 

LSB 위치는 가장 값이 작은 비트인 2^0에 위치하고 있으므로 LSB의 값을 확인하면 숫자가 짝수인지 홀수인지 쉽게 알아낼 수 있다.

또한 LSB는 프로그래밍시 주로 난수발생 함수, 해시 함수, 검사합(Checksum) 함수 등에서 많이 쓰인다. 왜냐하면 값이 조금이라도 변경된다면, 데이터 형의 최하위 비트에서 변화가 발생할 확률이 높기 때문이다.

 

그리고 MSB 는 최상위 비트로 signed 타입에서는 부호비트의 자리이다. 따라서 MSB만 비트연산을 통해 확인하면 양수인지 음수인지 알아낼 수 있다.

 

 

 

 

 

 

통신에 있어서 LSB 와 MSB

 

시리얼 통신(Serial Communication)은 송수신할 데이터의 각 비트를 단위시간에 따라서 순차적으로 보낸다. 즉 하나의 단위 시간동안 0 혹은 1밖에 보낼수 없는 구조이다.

 

때문에 MSB 부터 순차적으로 데이터 비트를 보내 맨 마지막에 LSB를 보내는 것인지, 정반대로 LSB부터 차례로 보낸 다음 MSB를 맨 마지막에 보내는지를 정확히 알아야 한다.

 

 

예를 들어 송신지와 수신지가 전부 빅 엔디안 방식을 쓴다고 했을 때, 송신지에서의 값은 0x95 즉 149 인데, 이걸 LSB 부터 밀어넣을지 MSB부터 밀어넣는지에 따라 수신지에서 받은 값이 달라질 수 있다.