MSB 비트가 올바르게 설정되지 않아 예상대로 작동하지 않습니다. metrowerks 컴파일러를 사용하고 있습니다.오른쪽으로 시프트/내가 잘못하고있는 것?
//shifting right 5 characters
char * buffer;
buffer=global_buffer;
for(i=0;i<5;i++) //shift right for 1;
{
buffer[17-i]=(buffer[17-i]>>1)|(buffer[17-i-1]<<7);
}
EDIT (직전 루프) 입력 버퍼 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x2F, 0xA0에, 0xC6,0x9D
은 내가 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x17,0xD0,0xE3,0xCE
루프 에 대한 후 도착
"정확함"을 정의하십시오. 당신의 의견은 무엇입니까? 어떤 결과를 기대합니까? 당신은 어떤 결과물을보고 있습니까? – jason
컴파일러는 "char"를 "signed char"로 구현합니다. 아래의 답 중 하나를 사용하여 이동 된 값이 부호 비트를 손상되지 않게 유지합니다. –