Skip to content
On this page

Node

字节

⭐字节(Byte)是存储数据的基本单位,并且是硬件所能访问的最小单位

通过“位运算符” 控制到位数
一个字节8个比特,1024个字节算1k

计算字节长度

中文是3个字节,英文是一个字节

js
console.log(Buffer.from("").length ) // 3
console.log(Buffer.from("hi").length ) // 2

进制

进制必须在 2-36 之间

  1. 2进制 01 以 0b 开头
  2. 3进制 012
  3. 8进制 0 - 7 ,可以以 0o 开头
  4. 10进制 0 - 9
  5. 16进制 0-9 A -F,以 0x 开头
  6. 36进制 0-9 A-Z
进制英文范围前缀后缀
二进制Binary - 二进制0-10BB
八进制Octal- 八进制0-70OO
十进制Decimal - 十进制0-9D
十六进制十六进制 Hexadecimal - 十六进制0-9,A-F0xH

转进制

转10 进制

js
parseInt("11", 2); // 3 2进制转10进制
parseInt("77", 8); // 63 8进制转10进制
parseInt("e7", 16); //231 16进制转10进制

0.2 转 2进制

js
0.2 转 2进制
0.2.toString(2) // '0.0011001100110011'
// 获取整数部分
0.2 * 2 = 0.4 // 0
0.4 * 2 = 0.8 // 0
0.8 * 2 = 1.6 // 1
0.6 * 2 = 1.2 // 1
0.2 * 2 = 0.4 // 0
0.4 * 2 = 0.8 // 0
0.8 * 2 = 1.6 // 1

从上到下就是 0011 0011 0011

10 转 2进制

js
(10).toString(2) // 1010
// 余数为0
10 / 2 = 5   // 0
5 / 2 = 2   // 1
2 / 2 = 1   // 0
1 / 2 = 0   // 1

从下往上 1010

8进制转2进制 模拟代码

js
const target = 8;
function getNumber(num) {
  let res = [];
  while (num != 0) {
    res.push(num % 2); // 取余数
    num = Math.floor(num / 2); // 向下取整
  }
  return res;
}
console.log(getNumber(target).reverse().join(""));