首頁  >  文章  >  後端開發  >  PHP 程式計算整數中的設定位

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

王林
王林原創
2024-08-28 12:07:181112瀏覽

什麼是二進位代碼?

二進位代碼是一種使用以 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

第三步

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

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

範例

<?php
// Function to get no of set
// bits in binary representation
// of positive integer n
function countSetBits($n)
{
	$count = 0;
	while ($n)
	{
		$count += $n & 1;
		$n >>= 1;
	}
	return $count;
}

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

輸出

Number of setbits in 12: 2

方法2:遞迴法

<?php
// PHP implementation of recursive
// approach to find the number of
// set bits in binary representation
// of positive integer n

// recursive function
// to count set bits
function countSetBits($n)
{
	// base case
	if ($n == 0)
		return 0;

	else

		// if last bit set
		// add 1 else add 0
		return ($n & 1) +
				countSetBits($n >> 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。這兩種方法都提供了一種對整數中的設定位元進行計數的方法,允許根據程式設計師的特定需求和偏好進行不同的實現選擇。

以上是PHP 程式計算整數中的設定位的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn