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

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

DataView 객체의 setInt32() 함수는 지정된 바이트 오프셋 위치에 부호 있는(signed) 32비트 정수를 저장합니다. ArrayBuffer 내부의 원하는 위치에 정수 데이터를 쓸 때 유용하게 활용됩니다.

문법

dataView.setInt32(byteOffset, value, littleEndian);

매개변수

  • byteOffset: 값을 저장할 버퍼 내 시작 위치(바이트 단위)
  • value: 저장할 부호 있는 32비트 정수 값 (-2,147,483,648 ~ 2,147,483,647)
  • littleEndian (선택): true이면 리틀 엔디안 형식으로 저장하고, 생략하거나 false이면 빅 엔디안 형식으로 저장합니다.

예제 1: 기본 사용법

다음 예제에서는 크기 20바이트의 ArrayBuffer를 생성한 후, setInt32()를 이용해 오프셋 1의 위치에 정수 36274722를 저장하고 getInt32()로 다시 읽어옵니다.

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

출력

36274722

예제 2: 실수 값 전달하기

setInt32() 함수에는 실수(float) 값을 직접 전달할 수 없습니다. 만약 실수를 인자로 넘기면 소수점 아래 자릿수가 잘려나간 정수 값으로 변환되어 저장됩니다.

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

출력

554

예제 3: 값 없이 호출하기

DataView에 저장할 값을 지정하지 않은 상태에서 setInt32()를 호출한 뒤 getInt32()로 데이터를 읽으면 0이 반환됩니다.

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

출력

0

정리

setInt32()는 ArrayBuffer의 특정 위치에 부호 있는 32비트 정수를 기록하는 메서드입니다. 실수 입력 시 정수로 변환되며, 값을 지정하지 않으면 0이 저장된다는 점을 기억해 두면 됩니다. 반대로 데이터를 읽을 때는 getInt32() 메서드를 함께 사용하면 됩니다.