DataView 객체의 getInt8() 메서드는 ArrayBuffer에서 지정된 바이트 오프셋 위치에 저장된 부호 있는 8비트 정수(signed 8-bit integer)를 읽어 반환합니다. 이진 데이터를 바이트 단위로 다룰 때 유용하게 사용됩니다.
문법
dataView.getInt8(byteOffset);
매개변수:
- byteOffset: 값을 읽어올 위치로, DataView의 시작 지점으로부터의 바이트 오프셋입니다.
반환값: 지정된 위치의 부호 있는 8비트 정수(-128 ~ 127 범위).
예제 1: 기본 사용법
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setInt8(1, 362);
document.write(dataView.getInt8(1));
</script>
</body>
</html>
출력 결과
106
설명: setInt8()은 값을 256으로 나눈 나머지(modulo)로 저장합니다. 따라서 362를 저장하면 362 % 256 = 106이 되어 106이 출력됩니다.
예제 2: 실수 값 전달 시 동작
이 함수에는 실수(float) 값을 직접 전달할 수 없습니다. 실수를 전달하면 소수점 이하가 버려지고 정수 값으로 처리됩니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setInt8(1, 362.23);
document.write(dataView.getInt8(1));
</script>
</body>
</html>
출력 결과
106
설명: 362.23은 먼저 정수 362로 변환되며, 이후 256으로 나눈 나머지인 106이 저장되어 출력됩니다.
예제 3: 값이 저장되지 않은 경우
DataView에 아무 값도 저장하지 않은 상태에서 데이터를 읽으려고 하면 이 함수는 기본값인 0을 반환합니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setInt8(1);
document.write(dataView.getInt8(1));
</script>
</body>
</html>
출력 결과
0
설명: setInt8()에 값 인수가 전달되지 않으면 해당 바이트는 초기화되지 않은 상태(0)로 유지되므로, getInt8()은 0을 반환합니다.
정리
- getInt8()은 지정된 오프셋에서 부호 있는 8비트 정수를 읽습니다.
- 저장 가능한 값의 범위는 -128부터 127까지이며, 범위를 벗어나는 값은 256으로 나눈 나머지로 저장됩니다.
- 실수를 전달하면 정수로 변환되어 처리됩니다.
- 값이 저장되지 않은 경우 0을 반환합니다.