二進制代碼是一種使用二進制數係統來表示信息或數據的系統。它只使用兩個數字,通常是0和1,來表示所有的值。二進制代碼中的每個數字被稱為一個位(二進制數字的縮寫)。
在二進制代碼中,每個數字代表2的冪。從最右邊的數字開始,2的冪從右到左遞增。例如,在8位二進制代碼中,最右邊的位代表2 0 (1),下一個位代表2 1 (2),依此類推。
讓我們將十進制數42轉換為二進制代碼。要將42轉換為二進制,我們將其連續除以2,並跟踪餘數,直到商變為零。
以下是逐步過程:
第一步:42 ÷ 2 = 21,餘數為0
第二步:21 ÷ 2 = 10,餘數為1
第三步:10 ÷ 2 = 5,餘數為0
第四步:5 ÷ 2 = 2,餘數為1
第五步:2 ÷ 2 = 1,餘數為0
第六步:1 ÷ 2 = 0,餘數為1
要獲取二進製表示,我們從底部(最後一個餘數)開始,並從底部向上讀取餘數。對於42的二進制代碼是: 101010 ,所以,十進制數42在二進制代碼中表示為101010。
在二進制代碼的背景下,設置位指的是被設置為1的二進制數字(位)。另一方面,清除位指的是被設置為0的二進制數字(位)。
例如,在二進制代碼101010中,有三個置位(對應值為1的位置)和三個清零位(對應值為0的位置)。
以下是使用循環遍歷方法計算設置位數量的PHP代碼示例:
<?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
以下是使用遞歸方法計算設置位數量的PHP代碼示例:
<?php // PHP implementation of recursive approach to find the number of 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 $n = 123; echo "Number of setbits in $n are: " . countSetBits($n); ?>
Number of setbits in 123 are: 6
總結來說,我們可以使用遞歸方法和循環遍歷所有位來計算一個整數中的設置位(1)的數量。循環方法涉及使用while循環迭代整數的每一位。我們初始化一個計數器變量,並迭代直到數字變為0。在循環內部,我們使用按位與運算符與1進行按位與運算,以檢查最低有效位。如果等於1,我們增加計數器。然後,我們將數字向右移動1位。這個過程一直持續到所有位都被檢查完畢,並返回最終的計數。
對於遞歸方法,我們可以定義一個遞歸函數,該函數以一個整數作為輸入。在函數內部,我們使用按位與運算符和1來檢查最低有效位。如果等於1,我們就增加一個計數器。然後,我們將數字右移1位,並使用更新後的數字遞歸調用函數。基本情況是當數字變為0時,我們返回計數器的值。這種方法遞歸地計算設置位,直到數字變為0。
這兩種方法都提供了一種在整數中計算設置位的方法,程序員可以根據自己的需求和偏好選擇不同的實現方式。