Nodejs는 서버 측 프로그래밍에서 널리 사용되는 매우 강력한 백엔드 JavaScript 솔루션입니다. 버퍼 유형도 Nodejs의 중요한 기능 중 하나입니다.
Nodejs에서 Buffer 객체는 주로 바이너리 데이터를 처리하는 데 사용되므로 일반적으로 네트워크 통신 및 데이터 지속성(예: 파일 읽기 및 쓰기)과 같은 시나리오에 사용됩니다.
실제 작업을 하다보면 자바스크립트에서 Buffer형 데이터를 숫자형으로 변환해야 하는 상황을 자주 접하게 되는데, 이번 글에서는 이 문제에 대한 해결책을 소개하겠습니다.
Nodejs에서는 이진 데이터를 십진수로 변환하는 것이 매우 쉽습니다. Buffer 클래스의 readInt 메서드를 사용하면 됩니다. readInt 메소드가 지원하는 매개변수에는 바이트 수, 오프셋 및 부호 없는 정수 사용 여부가 포함됩니다.
예를 들어 8바이트 Buffer 유형 데이터의 경우 다음 명령문을 사용하여 이를 10진수로 변환할 수 있습니다.
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let number = buffer.readIntBE(0, 8); console.log(number); //输出为78187493520
위 코드에서 Buffer.from 메서드는 길이는 8바이트입니다. 그런 다음 readIntBE 메소드를 사용하여 이를 10진수로 처리합니다.
버퍼 데이터를 10진수로 처리하는 것 외에도 16진수로 처리할 수도 있습니다. 이는 Nodejs와 함께 제공되는 toString 메소드를 통해 달성할 수 있습니다.
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let hex = buffer.toString('hex'); console.log(hex); // 输出为:1234567890abcdef
Buffer 객체를 숫자로 처리할 때 데이터의 바이트 순서를 고려해야 한다는 점에 유의하세요. 일반적으로 데이터의 소스 및 사용 요구 사항에 따라 데이터의 바이트 순서를 결정해야 합니다.
Nodejs에서는 일반적인 BE 및 LE 메서드를 사용하여 바이트 순서를 결정할 수 있습니다. BE는 빅 엔디안 순서를 나타내고, LE는 리틀 엔디안 순서를 나타냅니다.
BE: 높은 바이트에서 낮은 바이트 순서로, 즉 높은 바이트가 먼저, 낮은 바이트가 마지막에 데이터를 저장합니다.
LE: 낮은 바이트에서 높은 바이트 순서로, 즉 낮은 바이트가 먼저, 높은 바이트가 마지막에 데이터를 저장합니다.
예를 들어 2바이트 버퍼 데이터의 경우 하나는 BE이고 하나는 LE입니다.
let BE_Buffer = Buffer.from([0x12, 0x34]); let LE_Buffer = Buffer.from([0x34, 0x12]); console.log(BE_Buffer.readIntBE(0, 2)); // 输出为: 4660 console.log(BE_Buffer.readUIntBE(0, 2)); // 输出为: 4660 console.log(LE_Buffer.readIntLE(0, 2)); // 输出为: 4660 console.log(LE_Buffer.readUIntLE(0, 2)); // 输出为: 4660
JavaScript에서 버퍼 유형 데이터를 숫자 유형으로 변환하는 것은 Nodejs에서 일반적으로 사용되는 작업 중 하나입니다. . 다양한 디코딩 방법을 사용하면 데이터의 바이트 순서, 크고 작은 엔디안 및 기타 속성을 정확하게 식별하고 숫자로 변환할 수 있으므로 전송, 저장, 읽기 등의 과정에서 데이터의 정확성이 보장됩니다.
위 내용은 이번 글에서 소개한 Nodejs에서 Buffer형을 숫자형으로 변환하는 방법입니다. 모두에게 도움이 되었으면 좋겠습니다.
위 내용은 nodejs 버퍼를 숫자로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!