Node-邂逅Buffer

689 阅读2分钟

00-准备知识

  • 计算机只能识别0和1(因为计算机只认识通电和断电两种状态)
  • 所有存储在计算机上的数据都是0和1组成的(数据越大0和1就越多)
  • 计算机中的度量单位 1 B(Byte字节) = 8 bit(位) // 00000000 就是一个字节 // 111111111 也是一个字节 // 10101010 也是一个字节 // 任意8个 0或1的组合都是一个字节 1 KB = 1024 B 1 MB = 1024KB 1 GB = 1024MB
  • 我们需要了解进制相关的知识

常见的进制

  • 二进制
  • 八进制
  • 十进制
  • 十六进制

进制书写的格式和规律

  • 二进制
    • 0,1 逢二进一
    • 书写格式:以0b或者0B开头
    • 比如:0b0,0b1
  • 八进制
    • 0,1,2,3,4,5,6,7,8 逢八进一
    • 书写格式:以0开头
    • 比如:00,01,02,03
  • 十进制
    • 0,1,2,3,4,5,6,7,8,9,10 逢十进一
  • 十六机制
    • 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 逢十六进一
    • 书写格式:以0x或者0X开头
    • 比如:0x0,oX0,0x1,0X2

练习

用不同的进制来表示以下有多少个表格

  • 二进制

  • 八进制

-十进制

-十六进制

手画的很丑见谅

接下来就是进制转换

  • 十进制转二进制

    • 规律: 除二倒叙取余
    • 比如我们的14转为二进制是多少
  • 二进制转十进制

  • 十进制转八进制

    • 跟十进制转二进制差不多
    • 规律: 除八倒叙取余
  • 十进制转十六进制

    • 跟十进制转二进制差不多
    • 规律: 除十六倒叙取余
  • 八进制转十进制

    • 跟二进制转十进制差不多
  • 十六进制转十进制

    • 跟二进制转十进制差不多
  • 二进制转八进制

  • 二进制转十六进制

01-什么是Buffer?

Buffer是Node.js全局对象上的一个类,是一个专门用于存储字节数据的

Node.js提供了操作计算机底层API,而计算机底层只能识别0和1

所以就提供了一个专门用于存储字节数据的类

02-如何创建一个Buffer对象

  • 创建一个指定大小的Buffer

    • Buffer.alloc(size[, fill[, encoding]])
      
  • 根据数组/字符串创建一个Buffer对象

    • Buffer.from(string[, encoding])
      

03-Buffer实例方法

1.将数据转换成字符串

buf.toString()

2.往Buffer中写入数据

buf.write(string[, offset[, length]][, encoding])

3.从指定位置截取新Buffer

buf.slice([start[, end]])

04-Buffer静态方法

1.检查是否支持某种编码格式

Buffer.isEncoding(encoding)

2.检查是否是Buffer类型对象

Buffer.isBuffer(obj)

3.获取Buffer实际字节长度

Buffer.byteLength(string[, encoding])

4.合并Buffer中的数据

Buffer.concat(list[, totalLength])