2.Node.js 缓冲器(Buffer)

二、常用模块

2.1Buffer(缓冲器)

2.1.1概念

Buffer是一个类似于数组的对象,用于表示固定长度的字节序列

Buffer本质是一段内存空间,专门用来处理二进制数据
在这里插入图片描述

2.2.2特点

Buffer大小固定无法调整;

Buffer性能较好,可以直接操作计算机内存;

每个元素的大小为1个字节(byte)。

在这里插入图片描述

2.2.3创建Buffer
//创建Buffer的三种方式//1、alloc会把内存空间全部置0
let buf1=Buffer.alloc(10);
console.log('buf1:',buf1)//2、allocUnsafe不会把内存空间全部置0,可能会有之前别的程序留下来的数据
let buf2=Buffer.allocUnsafe(10)
console.log('buf2:',buf2)//3、from
let buf3=Buffer.from('sally')
let buf4=Buffer.from([73,32,108,111,118,101,32,83,97,108,108,121])
console.log('buf3:',buf3)
console.log('buf4:',buf4)
//将buf4转换成字符串(unicode码)
console.log('buf4_tostring:',buf4.toString())

输出:

//创建了1个10字节的内存空间,每个内存空间都会置0
buf1: <Buffer 00 00 00 00 00 00 00 00 00 00>
//创建了1个10字节空间,每个内存空间如果有旧数据的话,不会置0
buf2: <Buffer 00 00 00 00 00 00 00 00 00 00>
//将字符转换为unicode码(16进制)
buf3: <Buffer 73 61 6c 6c 79>
//将数组转换成16进制
buf4: <Buffer 49 20 6c 6f 76 65 20 53 61 6c 6c 79>
//将Buf4转换成字符串
buf4_tostring: I love Sally
2.2.4Buffer的读写
buf1=Buffer.from('hello')
console.log('第一个字节h的ASCII码(十进制):',buf1[0])
console.log('第一个字节h的ASCII码(二进制):',buf1[0].toString(2))buf1[0]=105
console.log('修改了第一个字节后的buf1:',buf1.toString())

输出:

第一个字节h的ASCII(十进制): 104
第一个字节h的ASCII(二进制): 1101000
修改了第一个字节后的buf1: iello
2.2.5Buffer 溢出

Buffer的每个元素是一个字节,也就是8位。最大能存储的十进制数是255(11111111),如果给一个元素存入一个大于255的数字,它会把高于8位的部分舍弃。

如:我们存入一个数字511(00000001 11111111),它会把前面8位舍弃,最终只会存入255(11111111)

let buf1=Buffer.alloc(10)
console.log('修改前:',buf1)
buf1[0]=511
console.log('修改后:',buf1)

输出:

修改前: <Buffer 00 00 00 00 00 00 00 00 00 00>
//写入的是511,结果只保留了后8位,ff为16进制,转换成2进制就是11111111,转换成10进制就是255
修改后: <Buffer ff 00 00 00 00 00 00 00 00 00>
2.2.6关于中文
let buf1=Buffer.from('你好')
console.log(buf1)

输出:

//在utf-8的编码格式下,每个中文字占三个字节
<Buffer e4 bd a0 e5 a5 bd>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka、Zookeeper、Redis、MySQL和Elasticsearch(ES)鉴权配置

在容器化环境中部署Kafka、Zookeeper、Redis、MySQL和Elasticsearch&#xff08;ES&#xff09;时&#xff0c;确保这些服务的安全性是非常重要的。以下是如何检查和配置这些服务的鉴权&#xff08;认证和授权&#xff09;机制&#xff0c;以及相关配置文件的路径和配置方法。 …

科技云报到:大模型时代下,向量数据库的野望

科技云报到原创。 自ChatGPT爆火&#xff0c;国内头部平台型公司一拥而上&#xff0c;先后发布AGI或垂类LLM&#xff0c;但鲜有大模型基础设施在数据层面的进化&#xff0c;比如向量数据库。 在此之前&#xff0c;向量数据库经历了几年的沉寂期&#xff0c;现在似乎终于乘着Ch…

电子电气架构---汽车OEM敏捷式集成方案简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

Linux驱动开发——设备树

文章目录 1 什么是设备树&#xff1f;2 DTS、DTB和DTC3 DTS语法3.1 dtsi头文件3.2 设备节点3.3 标准属性3.4 根节点compatible属性3.5 向节点追加或修改内容 4 创建小型模板设备树5 设备树在系统中的体现6 绑定信息文档7 设备树常用OF操作函数7.1 查找节点的OF函数7.2 查找父/子…

Unity Meta Quest 开发调试工具 Immersive Debugger

XR 开发者社区链接&#xff1a; 赠送原版GPT、完整课程、项目下载、项目孵化宣发、答疑、投融资&#xff08;YY&#xff09; 此工具可以在头显当中对 Unity 脚本的参数进行调整&#xff08;相当于在编辑器 Inspector 里调整脚本参数&#xff09;&#xff0c;并且还可以查看 Un…

免费送源码:Java+B/S+MySQL springboot电影推荐系统 计算机毕业设计原创定制

摘 要 随着互联网与移动互联网迅速普及&#xff0c;网络上的电影娱乐信息数量相当庞大&#xff0c;人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的电影推荐系统成为一个热门。然而电影信息的表示相当复杂&#xff0c;己有的相似度计算方法与推荐算法都各有优势&#…

赋能特大城市水务数据安全高速运算,深圳计算科学研究院YashanDB数据库系统斩获“鼎新杯”二等奖

第三届“鼎新杯”数字化转型应用优秀案例评选结果日前正式公布&#xff0c;深圳计算科学研究院联合深圳市环境水务集团有限公司申报的《深圳环境水务国产数据库YashanDB&#xff0c;赋能特大城市水务数据安全高速运转》案例&#xff0c;经过5个多月的评审&#xff0c;从4000申报…

Docker搭建Cisco AnyConnect 教程

本章教程搭建一个Cisco AnyConnect 连接教程。 一、下载文件 因为是基于Docker方式进行搭建的,所以需要提前安装好Docker,本章不介绍如何安装Docker,可以自行百度解决。 通过网盘分享的文件:ocserv-docker 链接: https://pan.baidu.com/s/14-2p9jenqE0KWzMilVzV-A?pwd=4yd…

穷举vs暴搜vs深搜vs回溯vs剪枝(一)

文章目录 全排列子集找出所有子集的异或总和再求和全排列 II电话号码的字母组合 全排列 题目&#xff1a;全排列 思路 通过深度优先搜索的方式&#xff0c;不断枚举每个数在当前位置的可能性&#xff0c;然后回溯到上一个状态&#xff0c;直到枚举完所有可能性得到正确的结果 r…

Flink 窗口触发器Triggers

Triggers ❝ 定义&#xff1a;触发器决定了窗口何时被触发。在Flink中&#xff0c;窗口的触发是通过设置定时器来实现的。 作用&#xff1a;控制窗口数据的聚合时机&#xff0c;确保数据在适当的时间点被处理和输出。 Trigger关键方法 onElement: 当元素被添加到窗口时调用&a…

幂律分布笔记

一、幂律分布的数据拟合 数据分箱&#xff1a; 所谓分箱就是对原始数据进行分组&#xff0c;然后对每一组内的数据进行平滑处理。常见的分箱方式主要有等深分箱、等宽分箱、用户自定义等 对数分箱&#xff1a; 对原数据进行分箱&#xff0c;第i个箱的宽度为bi&#xff0c;b…

Frp 在云服与内网服务器间实现端口映射

回顾&#xff1a;ssh -L 与 autossh Frp 使用 toml 语言配置多端口映射 内网服务器 SSH 22 端口暴露到云服指定端口 内网服务器 SSL 443 端口暴露到云服指定端口 临时禁用内网服务器 443 端口映射&#xff0c;SSH 远程维护也将不可用 开发机调测与内网服务器布署需要经常切换使…

本地部署 mini-omni

本地部署 mini-omni 1. 创建虚拟环境2. 克隆代码3. 安装依赖模块4. 启动 server5. 运行 streamlit demo6. 运行 gradio demo 1. 创建虚拟环境 conda create -n omni python3.10 conda activate omni2. 克隆代码 git clone https://github.com/gpt-omni/mini-omni.git cd mini…

客户案例 | Ansys与台积电和微软合作加速光子仿真

Ansys与台积电和微软展开合作&#xff0c;将硅光子器件的仿真和分析速度提高10倍以上 主要亮点 借助使用NVIDIA图形处理单元&#xff08;GPU&#xff09;的Microsoft Azure虚拟机&#xff0c;Ansys Lumerical™ FDTD 3D电磁仿真的光子器件仿真速度实现了10倍提升 凭借Azure云…

LeetCode 第420场周赛个人题解

目录 Q1. 出现在屏幕上的字符串序列 原题链接 思路分析 AC代码 Q2. 字符至少出现 K 次的子字符串 I 原题链接 思路分析 AC代码 Q3. 使数组非递减的最少除法操作次数 原题链接 思路分析 AC代码 Q4. 判断 DFS 字符串是否是回文串 原题链接 思路分析 AC代码 Q1. 出…

CRMEB标准版Mysql修改sql_mode

数据库配置 1.宝塔控制面板-软件商店-MySql-设置 2.点击配置修改&#xff0c;查找sql-mode或sql_mode &#xff08;可使用CtrlF快捷查找&#xff09; 3.复制 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后替换粘贴&#xff0c;保存 注&#xff1a;MySQL8.0版本的 第三步用…

Vulkan 开发(三):Vulkan 物理设备

Vulkan 物理设备 图片来自《 Vulkan 应用开发指南》 上一节了解了 Vulkan 实例&#xff0c;一旦有了实例&#xff0c;就可以查找系统里安装的与 Vulkan 兼容的物理设备。 Vulkan 物理设备&#xff08;PhysicalDevice&#xff09;一般是指支持 Vulkan 的物理硬件&#xff0c;通…

基于模型设计的智能平衡移动机器人-基础实验eCAP

目录 eCAP基本介绍 捕捉模式或者是APWM模式 捕获模块功能 CCS中打开模型 eCAP基本介绍 TMS320F28069的捕获单元模块能够捕获外部输入引脚的逻辑状态&#xff08;电平的高或低、电平翻转时的上升沿或下降沿&#xff09;&#xff0c;并利用内部定时器对外部事件或者引脚状态变…

关于网络接口监测工具ifstat命令的功能详解以及Linux下lsof命令的使用详解

一、关于网络接口监测工具ifstat命令的应用 ifstat工具是个网络接口监测工具,比较简单看网络流量&#xff0c;像VMSTAT那样一行行显示着浏览信息&#xff0c;可以设置显示某个或所有网卡流量数据。ifstat默认不监控回环接口&#xff0c;显示的流量单位是KB。系统默认未安装&…

【目标检测---旋转框标注】roLabelImg安装与使用

在目标检测领域&#xff0c;数据标注是至关重要的一环。为了提升模型的准确率和泛化能力&#xff0c;高质量的标注数据集是必不可少的。而roLabelImg作为一款专门用于标注旋转框的工具&#xff0c;为处理复杂场景下的目标检测提供了极大的便利。本文将详细介绍roLabelImg的安装…