2012-03-22 67 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

相關問題