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

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

PHPz
PHPz轉載
2023-08-22 11:41:13891瀏覽

什麼是二進位程式碼?

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

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

Example

讓我們將十進制數42轉換為二進位代碼。要將42轉換為二進制,我們將其連續除以2,並追蹤餘數,直到商變為零

以下是逐步過程:

第一步

42 ÷ 2 = 21,餘數為0

第二步

21 ÷ 2 = 10,餘數為1

步驟 3

#10 ÷ 2 = 5,餘數為0

第四步

5 ÷ 2 = 2,餘數為1

第五步

2 ÷ 2 = 1,餘數為0

第六步

1 ÷ 2 = 0,餘數為1

要取得二進位表示,我們從底部(最後一個餘數)開始,並從底部向上讀取餘數

對於42 的二進位程式碼是:101010

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

Setbit是什麼?

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

Example

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

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

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

#方法1:迴圈遍歷整數中的所有位元

Example

<?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

Conclusion

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

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

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

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除