我想使用按位运算将/24 之类的前缀转换为 255.255.255.0。
我试过像这样使用 unsigned int:
unsigned int mask = -(1 << 32 - prefix);
我正在考虑创建一个 while 循环,将 1 加到正确的位置,然后递减到 0。
所有帮助将不胜感激!
最佳答案
使用
unsigned long mask = (0xFFFFFFFF << (32 - prefix)) & 0xFFFFFFFF;
printf("%lu.%lu.%lu.%lu\n", mask >> 24, (mask >> 16) & 0xFF, (mask >> 8) & 0xFF, mask & 0xFF);
关于用C转换子网掩码前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16072967/