例如,以下是兩組IP地址,現在,您將如何識別每組更大的IP?你會如何比較兩個IP地址以查看哪一個更大?
設置一個:
10.192.3.177和10.192.2.204
SET B:
10.192.3.205和10.192.2.204
謝謝!
例如,以下是兩組IP地址,現在,您將如何識別每組更大的IP?你會如何比較兩個IP地址以查看哪一個更大?
設置一個:
10.192.3.177和10.192.2.204
SET B:
10.192.3.205和10.192.2.204
謝謝!
如果將它們轉換爲32位整數,則較大的那個將是較大的整數。換句話說:
10.192.3.177 -> 0x0ac003b1 (180,356,017) (bigger)
10.192.2.204 -> 0x0ac002cc (180,355,788)
10.192.3.205 -> 0x0ac003cd (180,356,045) (bigger)
10.192.2.204 -> 0x0ac002cc (180,355,788)
我有一個很難想象一個用情況會的問題,但是這就是如果我有一個程序來檢查我會採取的做法。
不確定,但我懷疑OP正試圖對某些數據結構的地址進行排序。 – 2010-09-08 06:23:24
你應該澄清你的意思是「更大」。
但是每個IP地址的數值(UINT32)值可以用下式計算:
d + 256 * c + 65536 * b + 16777216 * a
其中a,b,c和d是基本在IPv4的10個值格式化: ABCD
如果您想要對IP列表進行排序,您還可以將IP存儲在一個字符串中,每個字節前面加上0到3個數字。然後文本排序工作正常。
例子:
010.192.002.204
010.192.003.177
怎樣** **你比較兩個複數,看看哪一個更大? (對不起,關於在這裏沒有回答你的問題,它已經被回答了,只是必須指出,每一個這樣的結構都不是*可比*,除非你提供了一個定義來做這件事) – Michael 2010-09-08 06:29:35