2 차원 방식으로 1D 배열을 사용하려고하는데 "행"당 2 바이트를 가질 수 있기를 원하며이 행에는 소량이 있습니다.2D 방식의 1D 배열 사용
난 AX와 Y 파라미터로하는 기능을 가지고 있기 때문이다x /= 8;
는 x 매개 변수가 바이트 내부에 비트 위치이고, y는 행 번호이고, 등 : 다음 코드 된 나는 행 당 2 바이트를 원한다. 각 행은 16 비트 길이가 될 것이고 첫 번째 행에서 두 번째 바이트를 편집하려면 함수에 전달할 것이다. 예를 들어 x 값 10, y 값 0 제 1 행의 제 2 바이트는 00100000이된다.
,난 if 문으로이를 :
if (xBefore >= 8) {
xBefore -= 8;
}
즉 그 하나의 바이트이고 왼쪽에서 다음 바이트 수를 취할 것 같은 파라미터 (8) (10)로부터 제거 될 수있는 X 10을 입력한다면 바로 다음 코드 :
tmp[y][x] |= (1 << 7 - xBefore);
난 2 차원 배열이 기능을 달성 할 수 있어요하지만 내가 어떻게 1 차원 배열이 달성 것인가? 내가 제대로 이해하면
당신이 색인 "리틀 엔디안"일종의 설명하는 방법. 즉, 각 "행"을 16 비트 값으로 생각하면 가장 중요한 비트는 비트 0입니다. 기존 코드와의 상호 운용성에 필요합니까? 그렇지 않은 경우 다른 내부 표현을 사용하면 작업이 조금 더 깨끗해지기 때문입니다. – erickson
이 코드의 작동 방식에 대한 코드 유형을 알려주시겠습니까? – user5438578
XY 문제 (조금 말장난) – Alnitak