PowerShell把IP地址转换成二进制的方法
2014-08-11 09:15
726 查看
IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位。8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间。有的时候,比如为了换算子网掩码,我们需要将IP地址还原成二进制串的形式,如:11000000101010000000110000100001。今天小编看到一个例子就是来完成这个操作的。
代码如下:
$ipV4 = '192.168.12.33'
-join ($ipV4.Split('.') | ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8,'0')})
#-join是把多个结果对象或数组元素组合在一起输出。
结果将显示为:
复制代码 代码如下: 11000000101010000000110000100001
我们也可以修改一下程序,分别显示出每一段的转换后的形式:
'{0,5} : {1}' -f $_, [System.Convert]::ToString($_,2).PadLeft(8,'0')
}
结果将显示如下:
复制代码 代码如下: 192 : 11000000
168 : 10101000
12 : 00001100
33 : 00100001
最后补充说明一下这一句“[System.Convert]::ToString($_,2)”的理解。首先$_表示当前循环变量,把一个点分十进制的IP使用Split方法打散后,每个循环变量就是各个数字了,即192、168、12、33。而“[System.Convert]::ToString($_,2)”的意思是把这些数字转换为二进制的字符串。关于[System.Convert]::ToString的详细理解,可以参数下面几个例子:
复制代码 代码如下: #二进制
PS C:\Users\小编> [System.Convert]::ToString(16,2);
10000
#八进制
PS C:\Users\小编> [System.Convert]::ToString(16,8);
20
#十进制
PS C:\Users\小编> [System.Convert]::ToString(16,10);
16
#十六进制
PS C:\Users\小编> [System.Convert]::ToString(16,16);
10
您可能感兴趣的文章:
相关文章推荐
- 介绍三种将二进制字节字符转换为ASCII方法
- 介绍一种将ASCII码字符串转换为二进制字节数据的方法
- 编程将二进制IP地址转换成十进制
- float与计算机二进制之间的转换方法
- C++中几种将整数转换成二进制输出的方法
- vbs 二进制数据流转换字符串的方法
- C# IP地址与整数之间转换的具体方法
- IP地址二进制与十进制转换
- 十进制小数转换成二进制小数的快速方法
- ruby将ip地址转换成整数的方法
- 二进制转换为八进制、十进制、十六进制的方法
- [python]转换成二进制的一个快捷方法
- 用递归和非递归的方法把一个十进制数转换为二进制序列
- 一个字节转换成二进制的方法
- 用C语言将二进制转换为IP地址
- 介绍一种将ASCII码字符串转换为二进制字节数据的方法
- 在C#中将二进制数据转换成BASE64字符串的方法
- 十进制转换成二进制、八进制、十六进制的通用方法
- 关于IP地址十进制、二进制的相互转换(学习心得)
- java 二进制,八进制,十进制,十六进制间相互转换的方法