我在使用IP地址和子网掩码计算广播地址时遇到了麻烦.看起来很简单,应该只是广播= ip |〜mask,但它并不适合我的情况.我尝试使用+而不是OR运算符并使用unsigned int而不是signed,但它仍然不起作用.以下是执行此操作的代码部分,希望您能帮助我.作为IP地址和掩码[]的数组net []是以前在程序中使用的整数,并且正确输出并在我的程序内的其他操作中正常工作(将它们转换为二进制,通过使用&之间的计算网络地址等.)
int broadcast[4];
for(int i=0;i<4;i++)
broadcast[i]=net[i]|(~mask[i]);
Run Code Online (Sandbox Code Playgroud)
对于192.168.50.50和255.255.0.0作为net []和mask []我期望广播为192.168.255.255,但我得到-64.-88.-1.-1