마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

체크섬 구현 문의입니다. 어떻게 수정해야하나요?

0 추천

제가 20byte중 18byte를 다 더해서 

예로 0x430이 나왔으면 

 

체크썸 값음 

0x430-0x400을 해서 

0x100-0x030 을 하여 나온값 D0를 체크썸 값으로 하고 싶은데요..

어떻게 구현을 해야할지 모르겠습니다...ㅠㅠ

 

데이터 byte는 2자리라서 어떻게 구현을 해야할지...

int value = 0;
for(int i=1; i<19; i++){
    value=+contorl_data[i];
}
Log.d(TAG,"숫자?????"+value);
byte a = (byte) value;
value = 0x100 - (a & 0XFF);
Log.d(TAG,"값머고?????"+value);
contorl_data[19]=(byte) value;
위와 같이 구현하니 처음 숫자는 0 밑에 값은 256이 나오더라구요..
어떻게 수정을 해야하나요??

 

 

쿠쿠부다스 (6,470 포인트) 님이 2017년 10월 10일 질문

1개의 답변

0 추천

글을 읽었는데 무슨 말인지 모르겠어요.제가 이해가 부족한건지..

예전에 저도 byte값 작업해서 체크섬byte 만드는건 해봤거든요.

1.20byte 중 18byte의 값을 가지고 작업한다.

2.array[0]~array[17]의 값을 모두 더했더니 0x430이 나왔다.

=>0~17번째의 값을 알려주세요. 

3.0x430-0x400 = 0x030이 나오고, 0x100-0x030=0x070이 나온다.

(여기서 0x400과 0x100는 작업을 위해 항상 고정된 값인지? 코드를 보니 그런 것 같기도.)

4.byte값인 0x070을 D0으로 변환하고싶다. 

이 말씀이신가요~? D0값이 어떻게 해서 나오는지 궁금하네요 ㅎ; 

 

님이 2017년 10월 11일 답변
...