」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > PHP 程式計算整數中的設定位

PHP 程式計算整數中的設定位

發佈於2024-08-29
瀏覽:179

什麼是二進位代碼?

二進位代碼是使用 2 進位數字系統表示資訊或資料的系統。它僅使用兩位數字(通常為 0 和 1)來表示所有值。二進位代碼中的每個數字稱為一位(二進位數字的縮寫)。

在二進位代碼中,每個數字代表2的冪。從最右邊的數字開始,2的冪從右向左遞增。例如,在8位元二進位代碼中,最右邊的位元代表2^0(1),下一位代表2^1(2),再下一位代表2^2(4),依此類推。

例子

讓我們將十進制數 42 用二進位代碼表示。為了將 42 轉換為二進制,我們將它依次除以 2 並記錄餘數,直到商變為零。

以下是逐步過程:

步驟 1

42 ÷ 2 = 21,餘數 0

第 2 步

21 ÷ 2 = 10,餘數 1

步驟 3

10 ÷ 2 = 5,餘數 0

第 4 步

5 ÷ 2 = 2,餘數 1

步驟 5

2 ÷ 2 = 1,餘數 0

步驟 6

1 ÷ 2 = 0,餘數 1

為了獲得二進位表示,我們從底部(最後一個餘數)開始,從下到上讀取餘數。

42 的二進位代碼是:101010

所以,十進制數42用二進位碼表示為101010。

Setbit是什麼?

在二進位代碼中,設定位是指被設定為 1 的二進位數字(位元)。另一方面,清除位是指被設定為 1 的值的二進位數字(位)。 0。

例子

例如,二進位碼101010中,有3個置位位元(對應值為1的位置)和3個清零位元(對應值為0的位置)。

PHP 程式計算整數中的設定位

PHP Program to Count set Bits in an Integer

方法一:循環遍歷整數中的所有位

例子

>= 1;
	}
	return $count;
}

// Driver Code
$number= 12;
echo "Number of setbits in $number: " .countSetBits($number);
?>

輸出

Number of setbits in 12: 2

方法2:遞迴法

> 1);
}

// Driver code

// get value from user
$n = 123;

// function calling
echo "Number of setbits in $n are: ".countSetBits($n);
?>

輸出

Number of setbits in 123 are: 6

結論

總之,我們可以使用遞歸方法和迴圈遍歷 PHP 中的所有位元來計算整數中的設定位元 (1)。循環方法涉及使用 while 迴圈迭代整數的每一位。我們初始化一個計數器變數並迭代,直到數字變成 0。在循環內,我們使用位元與 1 來檢查最低有效位元。如果它等於 1,我們就遞增計數器。然後,我們將數字右移 1 位。此過程持續進行,直到檢查完所有位元並返回最終計數。

對於遞歸方法,我們可以定義一個以整數作為輸入的遞歸函數。在函數內部,我們使用位元 AND 運算子與 1 檢查最低有效位元。如果它等於 1,我們就遞增計數器。然後,我們將數字右移 1 位,並使用更新的數字遞歸來呼叫函數。基本情況是當數字變為 0 時,此時我們返回計數器。這種方法遞歸地對設定位元進行計數,直到數字變成 0。這兩種方法都提供了一種對整數中的設定位元進行計數的方法,允許根據程式設計師的特定需求和偏好進行不同的實現選擇。

版本聲明 本文轉載於:https://www.tutorialspoint.com/php-program-to-count-set-bits-in-an-integer如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 您的 Java 日誌實用程式類別是否將其自身報告為日誌來源?了解如何修復它!
    您的 Java 日誌實用程式類別是否將其自身報告為日誌來源?了解如何修復它!
    在現代軟體開發的快節奏環境中,有效的日誌記錄對於高效的調試和系統監控至關重要。但是,日誌輸出中不一致或不準確的行號可能會使故障排除變得非常耗時。最近,我發現我們的內部日誌記錄實用程式將自身報告為日誌來源。需要解決這個問題以提高日誌精確度。 問題 當使用自訂實用程式類別來處理日誌時...
    程式設計 發佈於2024-11-08
  • 如何透過重複較短的清單來壓縮不等長的清單?
    如何透過重複較短的清單來壓縮不等長的清單?
    透過重複較短的清單來壓縮不同大小的清單當嘗試壓縮兩個長度不等的清單時,內建的zip 函數會失效透過不重複較短的列表來匹配較大的列表來縮短。為了克服這個問題,需要替代方法。 使用 itertools.cycle 的解決方案itertools.cycle 函數提供了無限迭代可迭代物件的能力。可以利用此功...
    程式設計 發佈於2024-11-08
  • 如何使用Python透過SFTP安全傳輸檔案?
    如何使用Python透過SFTP安全傳輸檔案?
    在 Python 中透過 SFTP 進行安全檔案傳輸安全地傳輸檔案對於維護資料完整性至關重要。 SFTP(SSH 檔案傳輸協定)是一種安全協議,可確保透過 SSH(安全外殼)連接進行檔案傳輸。 對於希望實現 SFTP 功能的 Python 開發人員,強烈建議像 Paramiko 這樣的函式庫。 Pa...
    程式設計 發佈於2024-11-08
  • 聘請 Unity 開發人員:讓沉浸式遊戲精彩
    聘請 Unity 開發人員:讓沉浸式遊戲精彩
    从游戏开发和互动的高潮中可以明显看出,即使只有一小部分时间,Unity 3D 无疑是用于开发沉浸式多平台体验的最广泛使用的平台之一。您开发移动游戏、虚拟体验、增强现实应用程序 - 无论您的想法是什么,Unity 3D 开发人员现在都可以将其变为现实。然而,找到合适的人才并不容易,尤其是在当今蓬勃发展...
    程式設計 發佈於2024-11-08
  • 如何在頁面載入後動態載入較少的樣式表?
    如何在頁面載入後動態載入較少的樣式表?
    動態加載LESS 樣式表<link rel="stylesheet/less" href="/static/less/style.less" /> <script src="http://lesscss.googlecode.com...
    程式設計 發佈於2024-11-08
  • 使用 Python 列表的優雅而簡單的方法:列表推導式
    使用 Python 列表的優雅而簡單的方法:列表推導式
    您可能認為列表理解是一個高級概念。然而,在棘手的情況下,它只需一行就可以簡化您的程式碼。是時候了解它是如何運作的了。我將用示例.在初級水平上解釋它 列表理解到底是什麼? 您經常看到符號 l2 = [x 1 for x in l]。據說是這樣的: l2 = [] for x in l:...
    程式設計 發佈於2024-11-08
  • 如何從 Java WebDriver 執行 JavaScript 程式碼?
    如何從 Java WebDriver 執行 JavaScript 程式碼?
    從Java執行WebDriver JavaScript:增強指南問題中提到的命令./go webdriverjs是一個shell命令設計在特定文件夾中設定並初始化WebDriverJs 環境。但是,需要注意的是,WebDriverJs 是一種語言綁定,它支援 JavaScript 測試,而不是從 J...
    程式設計 發佈於2024-11-08
  • 下載網頁到ESP或簡單可程式控制器
    下載網頁到ESP或簡單可程式控制器
    為了將網頁儲存到ESP8266的FLASH中,我特地用delphi編寫了一個軟體工具。 該軟體工具從一個資料夾中讀取所有網頁檔案(包括html、css、js、圖片等),並將其打包為二進位檔案。 將ESP8266的GPIO0接地即可啟動,ESP8266進入串口下載模式。 然後使用下載軟體選擇打包...
    程式設計 發佈於2024-11-08
  • 為我的 D&D 表建立自訂 Stream Deck:使用自訂 SDK 解決遊戲手把整合問題
    為我的 D&D 表建立自訂 Stream Deck:使用自訂 SDK 解決遊戲手把整合問題
    作為一個熱情的龍與地下城玩家和技術愛好者,我決定通過創建一個帶有嵌入式屏幕的定制咖啡桌來提升我的遊戲設置。這張桌子顯示地圖、代幣、播放音效,甚至為玩家展示藝術品。所有這一切都透過一個名為 Foundry VTT 的強大平台運行,該平台與 Roll20 類似,但具有更好的定價模型和廣泛的開放模組系統。...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中有效率地計算兩個日期之間的月份數?
    如何在 PHP 中有效率地計算兩個日期之間的月份數?
    有效找出日期之間的月份計數一個常見的程式設計挑戰是確定兩個日期之間的月份數。在 PHP 中,有許多方法可以解決這個問題。 使用 DateTime 類別 (PHP >= 5.3):PHP 5.3 中引入的 DateTime 類別提供了方便的方法用於日期操作。計算月份差異:$d1 = new DateT...
    程式設計 發佈於2024-11-08
  • Bootstrap:建立和自訂導覽列
    Bootstrap:建立和自訂導覽列
    介紹 Bootstrap 是一個開源框架,廣泛用於 Web 開發,用於建立響應式且適合行動裝置的網站。 Bootstrap 的關鍵元件之一是導覽欄,它是一個水平導覽欄,用於組織和導覽網站的內容。在本文中,我們將討論使用 Bootstrap 建立和自訂導覽列的優點和缺點及其功能。 ...
    程式設計 發佈於2024-11-08
  • 將 WebSocket 與 Python 結合使用
    將 WebSocket 與 Python 結合使用
    什麼是 WebSocket? WebSocket 是一種支援瀏覽器和伺服器之間即時、雙向通訊的協定。傳統的 HTTP 通訊涉及客戶端發送請求和伺服器回應以交換資料。相較之下,使用 WebSocket,一旦建立了初始連接,客戶端和伺服器都可以相互發送和接收訊息,而無需重複建立新連接。...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中從子網域中提取網域?
    如何在 PHP 中從子網域中提取網域?
    在PHP 中從子域中提取域名在當代Web 開發中,必須解析和檢索域名,甚至是從子域中解析和檢索網域名稱。一個簡單的範例可能包括諸如“here.example.com”或“example.org”之類的網域。為了滿足這一需求,我們提出了一個全面的 PHP 函數,旨在從任何給定的輸入中提取根域名。 結合...
    程式設計 發佈於2024-11-08
  • 如何在多執行緒程式設計中連接向量以獲得最佳效率?
    如何在多執行緒程式設計中連接向量以獲得最佳效率?
    連結向量:深入分析在多執行緒程式設計中,合併結果是一個常見的挑戰。這通常涉及將多個向量組合成單一綜合向量。讓我們探索連接向量以獲得最大效率的最佳方法。 最佳連接方法為了高效的向量連接,最佳實踐是利用保留和插入方法:AB.reserve(A.size() B.size()); // Preallo...
    程式設計 發佈於2024-11-08
  • 如何優化FastAPI以實現高效的JSON資料回傳?
    如何優化FastAPI以實現高效的JSON資料回傳?
    FastAPI 傳回大型 JSON 資料的最佳化透過 FastAPI 傳回大量 JSON 資料集可能是一項耗時的任務。為了解決這個瓶頸,我們探索提高效能的替代方法。 識別瓶頸:使用 json.dumps 將 Parquet 檔案解析為 JSON 的初始方法( ) 和 json.loads() 效率低...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3