deer-develop / study

2 stars 0 forks source link

2의 보수법은 영웅이야 #11

Open swimmingone opened 5 months ago

swimmingone commented 5 months ago

LSB, MSB

“First, we add the two rightmost bits, also called the least significant bits (LSB) of the two binary numbers. Next, we add the resulting carry bit to the sum of the next pair of bits. We continue this lockstep process until the two left most significant bits (MSB) are added. ”

왜 그냥 제일 오른쪽 비트, 제일 왼쪽 비트라고 부르지 않고 이름까지 지어줬을까 궁금해서 조금 찾아봤다.

LSB는 프로그래밍 시 주로 난수발생 함수, 해시 함수, 검사합(Checksum) 함수 등에서 많이 쓰이고 있습니다. 왜냐하면 LSB는 값이 조금이라도 변경된다면, 데이터 형의 최하위 비트이므로 그 값이 거의 100% 변화가 발생하기 때문이죠. ... 해당 데이터 형의 값이 MSB만 확인하면, 양수인지 혹은 음수인지를 손쉽게 알아낼 수 있습니다. ... 실무적인 본질은 (...) 임베디드 시스템에서 시리얼 통신을 할 때 (...) MSB의 비트부터 순차적으로 데이터 비트를 보내 맨 마지막에 LSB의 비트를 보내는 것인지, 혹은 정반대로 LSB의 비트부터 차례로 보낸 다음 MSB를 맨 마지막에 보내는지를 명확히 알아야 할 때 매우 중요한 사항 (...) [출처] LSB와 MSB란 무엇인가?|작성자 땜쓰

2의 보수법

“To obtain the binary code of -x from the binary code of x” ... “flip all the bits of x and add 1 to the result.”

이게 제일 쉽게 구하는 방법인것 같다. 더 쉬운 방법 아는 분은 알려주세요.

“the two’s complement method enables adding and subtracting signed numbers using nothing more than the hardware required for adding nonnegative numbers. ... every arithmetic operation, from multiplication to division to square root, can be implemented reductively using binary addition. ... the two’s complement method obviates the need for special hardware for adding and subtracting signed numbers.

  1. 모든 산술 연산은 binary addition 으로 환원할 수 있다.
  2. 2의 보수법 덕분에 부호가 있는 숫자의 덧셈 뺄셈을 위한 특별한 하드웨어를 만들 필요가 없다. (그냥 부호 없는 숫자의 덧셈을 할 수 있는 하드웨어만 있으면 된다)

처음 2의 보수를 봤을 때는 이렇게 헷갈리기만 하는 걸 왜 배우는 건지 잘 이해가 안 됐었는데 이렇게 정리해보니 확실히 이해가 된다! 엄청 대단하고 아름다운 발명이었구나

hyewoncc commented 5 months ago

덕수: LSB, MSB 가 뭐죠? 영인: 비트에 이름을 붙인 것. 제일 오른쪽은 제일 덜 중요한 애고, 왼쪽은 제일 중요한 애라서 그렇게 붙었다. 실무적인 본질은 비트를 순서대로 보내야 하는데, 어느 쪽을 먼저 보내냐가 수신자 입장에서 정확히 알아야 해서 중요하다. LSB부터 보낸다.

영인: 2의 보수법을 만드는 다른 쉬운 방법이 있나요? (다들 모르겟는뎅 함, 전공수업 때도 이렇게 했다고 함)