2012-03-22 68 views
1

我想计算一个IP地址的广播,我计算了网络地址(通过ANDing),现在我需要广播地址,我使用的方法只是转向网络地址上的所有主机位地址为1,以获取最后一个可能的IP地址。C#用字符串中的另一个替换最后一个字母

现在的问题是如何做到这一点:-)

Anyway, the idea is this: 
      netbits     hostbits 
Network: 11000000 10101000 00000001 00000000 <- 192.168.1.0 
Subnet: 11111111 11111111 11111111 00000000 <- 255.255.255.0 
Broadcast: 11000000 10101000 00000001 11111111 <- 192.168.1.255 

如果他们都在一个字符串,我怎么在字符串中的最后一部分转换为1的(取代0的)?

我知道有多少0有和我(以防万一,以及一个数组)

int hostbits = 8; 
string network ="11000010101000000000010000000"; 

string[] arraynetwork = new string[4] 
arraynetwork[0] = "11000000"; 
.... 

任何想法在字符串中的网络?

+0

为什么你要代表一个字符串的位? – 2012-03-22 14:53:27

+0

可能的重复:[计算广播地址从IP和子网掩码](http://stackoverflow.com/questions/777617/calculate-broadcast-address-from-ip-and-subnet-mask) – 2012-03-22 14:56:28

+0

我不能使用字节因为它是功课,如果这就是你会建议我使用:) – Nicholas 2012-03-22 14:56:38

回答

1

这应该做的伎俩:

string network = "11000010101000000000010000000"; 
network = network.Substring(0, network.Length - 8) + "11111111"; 
+0

这不起作用Substring()需要(network.Length-8)作为起始索引..应该是network.Substring(0,network.Length-8) – Flowerking 2012-03-22 15:10:47

+0

谢谢,现在它的工作! :) – Nicholas 2012-03-22 15:18:40

+0

对不起,我完全忘记了起始索引。谢谢你清理那个Flowerking! – Brian 2012-03-22 15:34:40

相关问题