476。數補碼
難度:簡單
主題: 位操作
整數的補碼是將其二進制表示形式中的所有 0 翻轉為 1 以及將所有 1 翻轉為 0 時得到的整數。
例如,整數5的二進制是“101”,它的補碼是“010”,即整數2。
給定一個整數 num,返回 其補碼.
示例1:
輸入: num = 5
輸出: 2
說明: 5 的二進制表示為 101(無前導零位),其補碼為 010。因此需要輸出 2。
示例2:
輸入: num = 1
輸出: 0
說明: 1 的二進制表示為 1(無前導零位),其補碼為 0。所以需要輸出 0。
限制:
1 31
注意: 本題與 1009 相同。以 10 為底的整數的補碼
解決方案:
我們需要翻轉給定整數的二進制表示形式的位并返回結果整數。
解決問題的步驟:
-
將數字轉換為其二進制表示形式。
翻轉位(即,將 0 更改為 1,將 1 更改為 0)。
將翻轉后的二進制字符串轉換回整數.
讓我們用 php 實現這個解決方案:476。數字補碼
<?php // Example usage: $num = 5; echo findComplement($num); // Output: 2 $num = 1; echo findComplement($num); // Output: 0 ?>
登錄后復制
解釋:
decbin($num):將給定的整數轉換為其二進制字符串表示形式。
翻轉位:我們迭代二進制字符串并通過檢查它是 1 還是 0 來翻轉每個位。
bindec($flipped):將翻轉后的二進制字符串轉換回整數。
運行示例:
輸入: 5
二進制表示:“101”
翻轉二進制:“010”
輸出:2
輸入: 1
二進制表示:“1”
翻轉二進制:“0”
輸出:0
此解決方案通過翻轉給定數字的二進制表示形式的位來有效計算補碼。
聯系鏈接
如果您發現本系列有幫助,請考慮在 github 上給存儲庫 一顆星,或在您最喜歡的社交網絡上分享該帖子?。您的支持對我來說意義重大!
如果您想要更多類似的有用內容,請隨時關注我:
領英
github