判斷兩個MAC位址是否相鄰

2021-07-10 09:31:21 字數 911 閱讀 7494

有兩個mac位址,如」fe:ff:fe:ab:ab:ff」 和」fe:ff:fe:ab:ab:fe」, 它們之間相差1,則這兩個位址是相鄰的。如」fe:ff:fe:ab:ab:ff」和」fe:ff:fe:ab:ab:f0」, 則它們是不相鄰的。

注意:」fe:ff:fe:ab:ab:ff」和」fe:ff:fe:ab:ac:00」也是相鄰的,你的程式要能夠認識到這一點。

mac位址是48位的,把它轉換成64位的整數就可以解決這個問題。

bool ishex(char c)

int hextoint(char c)

if (c >= 'a' && c <= 'f')

if (c >= 'a' && c <= 'f')

return -1;

}bool islegalmacaddr(const

char *macstr)

else

}else }}

}if (comcnt != 5)

if (digitcnt == 0)

return ret;

}__int64 macaddrtoint64(const

char *macstr)

while ((c = *p++) != '\0')

else

if (c == ':')

else

}return ret;

}bool checkadjmacaddr(const

char *macaddr1, const

char *macaddr2)

return

abs(macaddrtoint64(macaddr1) - macaddrtoint64(macaddr2)) == 1;

}int main()

判斷兩個線段是否相交

html xmlns lang en charset utf 8 判斷兩個線段是否相交問題title rel stylesheet href css reset.css rel stylesheet href css style.css head class wrap 判斷兩個線段是否相交h2 br...

判斷兩個矩形是否重疊

兩個矩形的邊均與x軸或y軸平行,即軸對齊的矩形 將第乙個矩形記做a,第二個矩形記做b 判斷矩陣a與矩陣b是否重疊 邊沿重疊也認為是重疊 第一種方案,正向思維 按照一般的思路,先列舉出所有的矩形重疊的情況,然後,判斷是否是其中一種,如圖所示,共有四種重疊情況,我們使用紫色代表矩形a,紅色代表矩形b,並...

判斷兩個矩陣是否重疊

題目描述 給定兩個矩陣 前提 兩個矩陣的邊均與x軸和y軸平行,即軸對齊的矩形 將第乙個矩形記作a,第二個矩形記作b,判斷矩形a與矩形b是否重疊 邊沿重疊也認為是重疊 如果重疊則返回重疊面積。演算法分析 反向思考,我們不妨先解決出 不重疊 的情況,即b矩陣,可能在a的左側 右側 上側 下側。提交 in...