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

JavaScript DataView.getUint32() 함수 – 부호 없는 32비트 정수 읽기

개요

DataView 객체의 getUint32() 메서드는 지정된 바이트 오프셋(byteOffset) 위치에 저장된 부호 없는 32비트 정수(unsigned 32-bit integer)를 읽어 반환합니다. ArrayBuffer의 원시 바이너리 데이터를 정수 형태로 해석해야 할 때 유용하게 사용됩니다.

문법(Syntax)

dataView.getUint32(byteOffset, [littleEndian]);
  • byteOffset: 데이터를 읽어올 시작 위치(바이트 단위)
  • littleEndian (선택 사항): true이면 리틀 엔디안(little-endian) 방식으로, false이거나 생략하면 빅 엔디안(big-endian) 방식으로 값을 읽습니다.

예제 1: 기본 사용법

ArrayBuffer를 생성한 뒤 setUint32()로 값을 저장하고, getUint32()로 해당 위치의 값을 다시 읽어오는 기본적인 예제입니다.

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

출력 결과

45544

예제 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.setUint32(1, 455.44);
      document.write(dataView.getUint32(1));
   </script>
</body>
</html>

출력 결과

455

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

출력 결과

0

정리

getUint32()는 ArrayBuffer 내 특정 위치의 데이터를 부호 없는 32비트 정수로 읽어오는 메서드입니다. 실수 입력 시 정수로 변환되며, 값이 없는 경우 0을 반환한다는 점을 기억해 두면 바이너리 데이터를 다룰 때 발생할 수 있는 예상치 못한 동작을 방지하는 데 도움이 됩니다.