Uint8는 Unsigned 8-bit integer의 약자로, 8비트 크기의 부호 없는 정수를 의미합니다. 여기서 unsigned는 정수의 부호(양수 또는 음수)를 저장하지 않는다는 것을 의미하며, 따라서 이 형식으로 표현할 수 있는 값은 모두 0 이상의 양수입니다. 8-bit는 숫자가 표현되는 데이터의 크기가 8비트, 즉 1바이트라는 것을 뜻합니다.
따라서, Uint8은 0에서 255까지의 값을 가질 수 있습니다. 이는 8비트로 표현할 수 있는 모든 가능한 값 (2^8 = 256가지)입니다. 주로 픽셀 데이터, 네트워크 프로토콜, 하드웨어 인터페이스 등에서 사용됩니다. 예를 들어, 이미지를 처리할 때 각 색상 채널(R, G, B)을 0부터 255까지의 값으로 표현하는데, 이때 Uint8이 사용됩니다.
이 개념을 이용한 Uint8Array와 Uint8ClampedArray는 둘 다 JavaScript에서 8비트 부호 없는 정수의 배열을 표현하는 객체입니다. 하지만 두 객체는 값이 배열에 저장되는 방식에서 중요한 차이점을 가지고 있습니다.
// Uint8Array 예시
let uint8Array = new Uint8Array(4);
uint8Array[0] = 260; // 260은 255를 초과
uint8Array[1] = -5; // -5는 0 미만
uint8Array[2] = 128;
uint8Array[3] = 255;
console.log(uint8Array); // 출력: Uint8Array(4) [ 4, 251, 128, 255 ]
// Uint8ClampedArray 예시
let uint8ClampedArray = new Uint8ClampedArray(4);
uint8ClampedArray[0] = 260; // 255로 클램프
uint8ClampedArray[1] = -5; // 0으로 클램프
uint8ClampedArray[2] = 128;
uint8ClampedArray[3] = 255;
console.log(uint8ClampedArray); // 출력: Uint8ClampedArray(4) [ 255, 0, 128, 255 ]
얕은 복사, 깊은 복사, shallow copy, deep copy (0) | 2024.08.16 |
---|---|
연관 배열, associative array, 순차 배열, sequential array, 인덱스 배열 indexed array (1) | 2024.08.15 |
requestAnimationFrame() (0) | 2024.07.24 |
window - 웹 브라우저 최 상위 객체 (1) | 2024.07.24 |
let 과 var 의 차이 - window 속성에서 차이 중요 (1) | 2024.07.24 |