nodejs 바이트를 서로 변환하는 방법

PHPz
풀어 주다: 2023-04-26 09:32:24
원래의
1060명이 탐색했습니다.

Node.js는 JavaScript 언어로 구동되며 확장성이 뛰어난 대규모 웹 애플리케이션을 구축하는 데 사용할 수 있는 인기 있는 개발 플랫폼입니다. Node.js에서는 바이너리 데이터를 처리하는 것이 매우 일반적이므로 Node.js를 사용하여 바이트 변환을 수행하는 것도 매우 중요한 주제입니다.

바이트를 HexString으로

Node.js에서는 바이트 배열을 16진수 문자열로 변환하는 것이 매우 간단합니다. 이를 처리하기 위해 Buffer 클래스를 사용할 수 있습니다. 다음은 바이트 배열을 16진수 문자열로 변환하는 샘플 코드입니다.

const buff = Buffer.from([0x12, 0x34, 0x56, 0x78]);
const hexString = buff.toString('hex');
console.log(`hexString: ${hexString}`);
// hexString: 12345678
로그인 후 복사

Buffer.from 메서드는 배열을 매개변수로 받아들이고 이러한 바이트가 포함된 Buffer 인스턴스를 반환합니다. 지정된 길이의 빈 Buffer 인스턴스를 전달한 다음 채우기 메서드를 사용하여 필요한 경우 필요한 부분을 가로채기 위해 Slice() 메서드를 사용할 수도 있습니다.

toString() 메서드는 선택적 인코딩 매개변수를 허용하며 여기서는 16진수 인코딩을 사용합니다. 이 예제 코드는 16진수 문자열을 출력하며 출력이 12345678임을 확인할 수 있습니다.

HexString을 Byte로

Node.js에서는 16진수 문자열을 바이트 배열로 변환하는 것도 매우 간단합니다. 이 16진수 문자열을 Buffer 클래스로 가져오기만 하면 됩니다. 다음은 16진수 문자열을 바이트 배열로 변환하는 샘플 코드입니다.

const hexString = 'ab12fde9';
const byteArr = Buffer.from(hexString, 'hex');
console.log(`byteArr: ${byteArr}`);
// byteArr: <Buffer ab 12 fd e9>
로그인 후 복사

Buffer.from 메서드의 첫 번째 매개 변수는 문자열 유형으로, 어디에서 오고 싶은지 나타냅니다. 여기서는 배열이 아닌 16진수 문자열로 지정합니다.

두 번째 매개변수는 선택사항이며, 첫 번째 매개변수를 디코딩하는 데 사용할 인코딩을 나타냅니다. 여기서는 16진수로 설정했습니다.

바이트 배열을 십진수로 변환

Node.js에서는 바이트 배열을 십진수로 변환하는 것도 매우 간단합니다. 이 기능을 구현하기 위해 ArrayBuffer 클래스와 DataView 클래스를 사용할 수 있습니다. 다음은 바이트 배열을 10진수로 변환하는 샘플 코드입니다.

const byteArr = new Uint8Array([0x12, 0x34, 0x56, 0x78]);
const buffer = new ArrayBuffer(4);
const dataView = new DataView(buffer);
byteArr.forEach((item, index) => {
  dataView.setUint8(index, item);
});
const decNum = dataView.getUint32(0, false);
console.log(`decNum: ${decNum}`);
// decNum: 305419896
로그인 후 복사

이 샘플 코드는 ArrayBuffer 클래스를 사용하여 크기 4의 버퍼를 생성합니다. 그런 다음 DataView 클래스를 사용하여 이 버퍼의 데이터를 읽고 썼습니다.

먼저 byteArr이라는 Uint8Array 유형의 객체를 생성하고 이를 변환하려는 바이트 배열로 설정합니다.

다음으로 buffer 및 dataView라는 이름의 Buffer 및 DataView 인스턴스 개체를 만들었습니다. 그런 다음 DataView의 setUint8() 메서드를 사용하여 byteArr의 각 요소를 버퍼에 씁니다.

마지막으로 DataView의 getUint32() 메서드를 사용하여 버퍼의 데이터를 읽고 십진수를 반환합니다. 이 샘플 코드의 출력은 305419896입니다.

십진수를 바이트 배열로 변환

마찬가지로 Node.js에서는 십진수를 바이트 배열로 변환하는 것이 매우 간단합니다. DataView 클래스의 setUintX() 메서드만 사용하면 됩니다. 다음은 10진수를 바이트 배열로 변환하는 샘플 코드입니다.

const decNum = 305419896;
const buffer = new ArrayBuffer(4);
const dataView = new DataView(buffer);
dataView.setUint32(0, decNum, false);
const byteArr = new Uint8Array(buffer);
console.log(`byteArr: ${byteArr}`);
// byteArr: Uint8Array [ 18, 52, 86, 120 ]
로그인 후 복사

이 샘플 코드는 DataView의 setUint32 메서드를 사용하여 새로운 ArrayBuffer 인스턴스에 10진수를 씁니다. 다음으로 이 ArrayBuffer 인스턴스를 Uint8Array에 전달하여 바이트 배열로 변환합니다.

이 샘플 코드의 출력 결과는 [18, 52, 86, 120] 값을 갖는 바이트 배열입니다.

요약

Node.js에서는 바이트를 HexString으로 변환, HexString을 바이트로 변환, 십진수를 바이트 배열로 변환, 바이트 배열을 십진수로 변환 등의 작업이 매우 일반적입니다. Node.js에서 제공하는 Buffer 클래스와 DataView 클래스를 사용하여 이러한 작업을 구현할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 nodejs 바이트를 서로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!