아 이미지 왜 자꾸 깨짐.

이미지 자꾸 깨지니까 그냥 말로하겠음 ...딱히 할말이없네요 이미지올리고싶은데
ps&cube
접속 : 6145   Lv. 86

Category

Profile

Counter

  • 오늘 : 27 명
  • 전체 : 439821 명
  • Mypi Ver. 0.3.1 β
[학생] 프로그래밍중 비트연산자? 이쪽 관련같은데...16진수->10진수 변환.질문??드립니다! ㅜㅠ (5) 2018/11/03 AM 12:03


예제로...

1F 11 FF AA라는 바이트가 있는데

var temperature = (bytes[2] << 8) | bytes[3] 

이런식으로 해서 

65450이란 값을 얻더군요?

FF AA 를 10진수로 변환하면 65450입니다....

 

이렇게 해야하는데...제가 변환해야하는 값이

 

00 00 00 00 00 01 12 0A 09 02 12 00 2C 1F 11 3F

이중에서 0A 09를 추출을 해야합니다..

위의 값을 근거로 추측해서 뽑아봤는데

var temperature = (bytes[7] << 16 ) | bytes[8];

 

원하는 값인 0A 09의 10진수 값인 2569 가 나오질 않네요...

어떻게 해야할가요?

 

신고

 

雪風 Maive    친구신청

(bytes[7] << 8) | bytes[8] 인듯 싶네요.

공허의 에일리♥    친구신청

그냥 똑같이 하시면 됩니다
var temperature = (bytes[7] << 8 ) | bytes[8];

공허의 에일리♥    친구신청

부연설명을 조금 해보면
10진수로 1234를 다르게 표현 해 보면
1000 + 200 + 30 +4로 표현 할 수 있는데
원래 예제에서 FF AA를 변환한 방식이 위와 같은 방식 입니다.
FF AA = FF 00 + 00 AA = (FF << 8) + AA

루리웹-3649315747    친구신청

<< 16은 비트를 16개 밀겠다는 의미
16진수로 헷갈리시면
2진수로 변환해서 생각하신다음에 해보세요.

프린세스 버블검✅    친구신청

이걸 완벽히 마스터하셔야 나중에 골머리 썩지 않습니다
요즘은 프로그래밍 툴들이 좋아서 포인터니 뭐니 문법 어설프게 안맞는건 다 틀렸다고 지적해주지만 진수변환 같은건 프로그래머의 의도만으로 구현하는 알고리즘의 문제라 잡아주지 않습니다
X