我需要将 IP 地址与其子网掩码进行“AND”运算。 IP 地址是十六进制数,子网掩码是 0 - 32 之间的数字(不是 0)。
4a21bd6e/25
我可以使用下面的代码“AND”这两个变量来获取 IP 地址的最高有效 25 位吗?
uint32_t IP = 4a21bd6e;
uint8_t netmask = 25;
int mask = 0x80000000;
uint32_t results = IP & (mask >> (netmask - 1));
最佳答案
答案是也许 - 如果您的编译器/处理器选择是:
关于我可以在 C 中使用 int 类型作为 IP 地址的网络掩码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26327609/