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

JavaScript DataView.getUint16() 메서드 완벽 가이드 – 문법과 예제

DataView 객체의 getUint16() 메서드는 ArrayBuffer 내 지정된 위치(바이트 오프셋)에서 부호 없는 16비트 정수(unsigned 16-bit integer)를 읽어 반환합니다. 이진 데이터를 정밀하게 다루어야 하는 상황에서 매우 유용한 메서드입니다.

문법(Syntax)

getUint16() 메서드의 기본 문법은 다음과 같습니다.

dataView.getUint16(byteOffset, [littleEndian]);

매개변수 설명:

  • byteOffset: 값을 읽기 시작할 버퍼 내 위치(바이트 단위). 필수 값입니다.
  • littleEndian(선택 사항): true이면 리틀 엔디안(little-endian), false이거나 생략하면 빅 엔디안(big-endian) 방식으로 값을 읽습니다.

예제 1: 기본 사용법

아래 예제에서는 setUint16() 메서드로 오프셋 위치 1에 값 45544를 저장한 뒤, getUint16()으로 해당 값을 다시 읽어 출력합니다.

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

출력 결과

45544

예제 2: 실수(Float) 값 전달 시 동작

이 메서드에는 실수(float) 값을 직접 전달할 수 없습니다. 실수 값을 전달하면 소수점 이하가 잘려나간 정수 값으로 자동 변환되어 처리됩니다.

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

출력 결과

455

위 예제에서 455.44를 저장했지만, 출력 결과는 소수점이 제거된 455임을 확인할 수 있습니다.

예제 3: 값이 저장되지 않은 경우

DataView에 어떤 값도 저장하지 않은 상태에서 getUint16()을 호출하면, 해당 위치의 기본값인 0이 반환됩니다.

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

출력 결과

0

정리

getUint16()은 ArrayBuffer에서 지정한 오프셋 위치의 부호 없는 16비트 정수를 읽어오는 메서드입니다. 실수 값은 정수로 변환되며, 값이 저장되지 않은 영역을 읽으면 0을 반환한다는 점을 기억해 두면 좋습니다.