0

你好,伙计们,我可能应该说我是在一年前开始编码的,所以我没有经历过编码和......东西的琐碎细节(以及更多)。我也应该在控制台中添加我目前在 c# 中编码的内容。如果您想知道的话,这些变量也部分是捷克语。哦,对了,代码。

我想创建一个可以计算 VLSM 的程序。这意味着我与位和移位运算符一起工作。在代码中,您必须使用 AND 运算符(我发现它是“&”)。问题是它只执行一次 AND 操作,然后停止,我不知道为什么。代码:

// IP[jednicky] - the IP number in the array its changing. The "jednicky" (Ones in english) 
// are a little bit complicated, but in short it knows which of the IP´s to change.
// BinarniKontroler - variable, which stores ones in a sequence (Ex: 1110 0000)

IP[jednicky] = BinarniKontroler >> 1 & RawIP;

Console.WriteLine($"{BinarniKontroler >> 1} & {BinarniKontrolovany} AND - {IP[jednicky]}");

Console.WriteLine($"{IP[0]}.{IP[1]}.{IP[2]}.{IP[3]}");    
Console.ReadLine();

第二个较小的问题是我的计算有点不正确,并且二进制数(在 Int32 中)“BinarniKontroler”最后有一个额外的零。我可以改进(也许)改进代码,但是......是的。我打算只使用位移“>>”。好消息是它实际上将二进制数向右移动,但它把所有的都变成了 5???(例如:1110 0000 -> 555 0000),我不知道为什么会这样。但我认为它不会伤害 AND 操作,所以无论如何。PS:您可能可以告诉我对堆栈溢出完全陌生,所以如果您需要更多信息等,请告诉我。

4

0 回答 0