476。數(shù)補(bǔ)碼
難度:簡(jiǎn)單
主題: 位操作
整數(shù)的補(bǔ)碼是將其二進(jìn)制表示形式中的所有 0 翻轉(zhuǎn)為 1 以及將所有 1 翻轉(zhuǎn)為 0 時(shí)得到的整數(shù)。
- 例如,整數(shù)5的二進(jìn)制是“101”,它的補(bǔ)碼是“010”,即整數(shù)2。
給定一個(gè)整數(shù) num,返回 其補(bǔ)碼.
示例1:
- 輸入: num = 5
- 輸出: 2
- 說(shuō)明: 5 的二進(jìn)制表示為 101(無(wú)前導(dǎo)零位),其補(bǔ)碼為 010。因此需要輸出 2。
示例2:
- 輸入: num = 1
- 輸出: 0
- 說(shuō)明: 1 的二進(jìn)制表示為 1(無(wú)前導(dǎo)零位),其補(bǔ)碼為 0。所以需要輸出 0。
限制:
- 1 31
注意: 本題與 1009 相同。以 10 為底的整數(shù)的補(bǔ)碼
解決方案:
我們需要翻轉(zhuǎn)給定整數(shù)的二進(jìn)制表示形式的位并返回結(jié)果整數(shù)。
解決問(wèn)題的步驟:
- 將數(shù)字轉(zhuǎn)換為其二進(jìn)制表示形式。
- 翻轉(zhuǎn)位(即,將 0 更改為 1,將 1 更改為 0)。
- 將翻轉(zhuǎn)后的二進(jìn)制字符串轉(zhuǎn)換回整數(shù).
讓我們用 php 實(shí)現(xiàn)這個(gè)解決方案:476。數(shù)字補(bǔ)碼
<?php // Example usage: $num = 5; echo findComplement($num); // Output: 2 $num = 1; echo findComplement($num); // Output: 0 ?>
關(guān)注:愛(ài)掏網(wǎng)
解釋?zhuān)?
- decbin($num):將給定的整數(shù)轉(zhuǎn)換為其二進(jìn)制字符串表示形式。
- 翻轉(zhuǎn)位:我們迭代二進(jìn)制字符串并通過(guò)檢查它是 1 還是 0 來(lái)翻轉(zhuǎn)每個(gè)位。
- bindec($flipped):將翻轉(zhuǎn)后的二進(jìn)制字符串轉(zhuǎn)換回整數(shù)。
運(yùn)行示例:
-
輸入: 5
- 二進(jìn)制表示:“101”
- 翻轉(zhuǎn)二進(jìn)制:“010”
- 輸出:2
-
輸入: 1
- 二進(jìn)制表示:“1”
- 翻轉(zhuǎn)二進(jìn)制:“0”
- 輸出:0
此解決方案通過(guò)翻轉(zhuǎn)給定數(shù)字的二進(jìn)制表示形式的位來(lái)有效計(jì)算補(bǔ)碼。
聯(lián)系鏈接
如果您發(fā)現(xiàn)本系列有幫助,請(qǐng)考慮在 github 上給存儲(chǔ)庫(kù) 一顆星,或在您最喜歡的社交網(wǎng)絡(luò)上分享該帖子?。您的支持對(duì)我來(lái)說(shuō)意義重大!
如果您想要更多類(lèi)似的有用內(nèi)容,請(qǐng)隨時(shí)關(guān)注我:
- 領(lǐng)英
- github
以上就是數(shù)補(bǔ)碼的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注愛(ài)掏網(wǎng) - it200.com其它相關(guān)文章!
聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。