심층 분석: uint8_t가 올바르게 인쇄되지 않는 이유
uint8_t 변수의 값이 다음을 사용하여 올바르게 인쇄되지 않는 문제가 발생했습니다. cout. 조사 결과, 데이터 유형을 uint16_t로 변경하면 문제가 해결된다는 사실을 발견했습니다. 이 동작은 uint8_t의 기본 특성과 cout이 문자 데이터를 처리하는 방식에서 비롯됩니다.
내부적으로 uint8_t는 부호 없는 8비트 정수를 저장합니다. 명시적으로 변환하지 않고 cout을 사용하여 이 값을 직접 인쇄하려고 하면 연산자
이 문제를 해결하려면 인쇄하기 전에 uint8_t 변수를 부호 없는 정수로 변환해야 합니다. 이 변환을 통해 숫자 값으로 해석되고 인쇄됩니다. 다음 수정된 코드 줄은 이를 보여줍니다.
cout여기서 unsigned(a)는 명시적으로 a를 unsigned로 변환합니다. 그러면 cout이 정확하게 인쇄할 수 있는 정수입니다. 인쇄할 수 없는 ASCII 문자의 값은 공백을 포함하여 32 미만입니다. 부호 없는 정수로 변환하면 인쇄할 수 없는 문자를 피할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3