我需要获取IP地址并获取其子网。目前我正在考虑将IP转换为二进制数,然后在其上使用逐位AND运算符和表示子网掩码的二进制数。但是我不确定如何存储这些二进制数。它们不是int,char,long等。那么什么样的变量存储二进制数?
答案 0 :(得分:2)
所有整数实际上都存储为二进制。您可以简单地将8位整数值存储在unsigned char变量中,并对这些值使用按位运算。
答案 1 :(得分:1)
首先,您需要将IP转换为数字。适合的数据类型是32位数字。如果您使用的是32位编译器,那么int
就可以了。
然后,您只需要使用子网掩码AND
int
。忘记转换为二进制。计算机将所有信息(包括数字)存储在位中,因此所有数字都已在计算机内以二进制形式表示。
所以,你所看到的" 12"源代码中的(十进制)内部表示为" 1100" (以二进制形式表示),随时可以AND
编辑AND
。