首頁 > 後端開發 > php教程 > 。數補碼

。數補碼

WBOY
發布: 2024-08-23 06:35:11
原創
533 人瀏覽過

. Number Complement

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為底的整數的補

解:

我們需要翻轉給定整數的二進位表示形式並傳回結果整數。

解決問題的步驟:

  1. 將數字轉換為其二進位表示形式。
  2. 翻轉位元(即,將 0 改為 1,將 1 改為 0)。
  3. 將翻轉後的二進位字串轉換回整數.

讓我們用 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):將翻轉後的二進位字串轉換回整數。

運行範例:

  1. 輸入: 5

    • 二進位表示:“101”
    • 翻轉二進位:“010”
    • 輸出:2
  2. 輸入: 1

    • 二進位表示:“1”
    • 翻轉二進位:“0”
    • 輸出:0

此解法透過翻轉給定數字的二進位表示形式的位元來有效計算補碼。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是。數補碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板