二进制转十进制
要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。
所以总结起来通用公式为:
abcd.efg(二进制)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3(十进制)
如:11000000 转化为10进制:
0*2^0 + 0*2^1 + 0*2^2 + 0*2^3 + 0*2^4 + 0*2^5 + 1*2^6 + 1*2^7 = 192
代码实现十进制转二进制
let num = 7
console.log(num.toString(2));
// expected output: '111'
代码实现二进制转十进制
console.log(parseInt('111', 2));
// expected output: 7
网络192.168.0.0/26所包含的网段
子网码为26即 11111111 11111111 11111111 11000000
0有6位
转换为十进制为 255.255.255.192
可选 地址为 192.168.0.1-192.168.0.62
只有六位可用变动
192.168.0.00000000 - 192.168.0.00111111
192.168.0.0 - 192.168.0.63
例2:192.168.1.16/28 只有4位可变动
包含地址为: 192.168.1.00010000 - 192.168.1.00011111
为192.168.1.16-192.168.1.31
CIDR采用的是IP/x,x指的是前x位为网络前缀
例如192.168.0.1/24,前24位为网络地址,后8位为主机地址。
令主机地址分别为全0和全1就可以得到一个CIDR地址块的最小地址和最大地址ÿ