Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript DataView.setInt16() 함수 완벽 가이드

DataView 객체의 setInt16() 함수는 지정된 바이트 오프셋 위치에 부호 있는(signed) 16비트 정수를 저장하는 메서드입니다. ArrayBuffer 내부의 이진 데이터를 다룰 때 유용하게 사용됩니다.

문법(Syntax)

setInt16() 함수의 기본 문법은 다음과 같습니다.

dataView.setInt16(byteOffset, value, littleEndian);

매개변수 설명:

  • byteOffset – 값을 저장할 버퍼 내 시작 위치(바이트 단위)
  • value – 저장할 16비트 정수 값
  • littleEndian (선택 사항) – true이면 리틀 엔디안 방식으로 저장하며, 생략하거나 false이면 빅 엔디안 방식으로 저장됩니다.

예제 1: 기본 사용법

다음 예제에서는 setInt16()으로 값을 저장한 뒤, getInt16()을 사용하여 읽어옵니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var arrayBuffer = new ArrayBuffer(20);
        var dataView = new DataView(arrayBuffer);
        dataView.setInt16(1, 3225);
        document.write(dataView.getInt16(1));
    </script>
</body>
</html>

출력 결과

3225

예제 2: 실수(float) 값 전달하기

setInt16() 함수에 소수점이 포함된 실수(float) 값을 전달할 수 없습니다. 만약 실수 값을 인자로 넘기면 해당 값은 자동으로 정수로 변환(절삭)되어 처리됩니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var arrayBuffer = new ArrayBuffer(20);
        var dataView = new DataView(arrayBuffer);
        dataView.setInt16(1, 564.22);
        document.write(dataView.getInt16(1));
    </script>
</body>
</html>

출력 결과

564

위 예제에서 564.22가 그대로 저장되지 않고 소수점 아래 값이 잘린 564로 저장된 것을 확인할 수 있습니다.

예제 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.setInt16(1);
        document.write(dataView.getInt16(1));
    </script>
</body>
</html>

출력 결과

0

값이 저장되지 않은 버퍼의 초기 상태는 모든 비트가 0으로 채워져 있기 때문에, getInt16()으로 읽었을 때 0이 반환되는 것입니다.