У меня проблемы с вычислением широковещательного адреса с использованием IP-адреса и маски подсети.Это кажется простым, это должна быть просто широковещательная = ip | ~ маска, но в моем случае она не работает.Я попытался использовать + вместо оператора OR и использовать unsigned int вместо подписанного, но это все еще не работает.Вот часть кода, которая выполняет эту операцию, надеюсь, вы мне поможете.Массивы net [], являющиеся IP-адресом, и mask [] являются целыми числами, ранее использовавшимися в программе, и правильно выводятся и отлично работают в других операциях внутри моей программы (превращая их в двоичные, вычисляя сетевой адрес, используя & между ними и т. Д..)
int broadcast[4];
for(int i=0;i<4;i++)
broadcast[i]=net[i]|(~mask[i]);
Для 192.168.50.50 и 255.255.0.0 как net [] и mask [] Я ожидаю, что трансляция будет 192.168.255.255 , но я получаю -64.-88.-1-1