[英]interpreting 1 bit counting
在bitcount.c中編寫一個名為bitCount()的函數,該函數以其無符號整數參數的二進制表示形式返回1位的數目。 請記住填寫標識信息並運行完整的程序以驗證正確性。
/*
Name:
Lab section time:
*/
#include <stdio.h>
int bitCount (unsigned int n);
int main ( ) {
printf ("# 1-bits in base 2 representation of %u = %d, should be 0\n",
0, bitCount (0));
printf ("# 1-bits in base 2 representation of %u = %d, should be 1\n",
1, bitCount (1));
printf ("# 1-bits in base 2 representation of %u = %d, should be 16\n",
2863311530u, bitCount (2863311530u));
printf ("# 1-bits in base 2 representation of %u = %d, should be 1\n",
536870912, bitCount (536870912));
printf ("# 1-bits in base 2 representation of %u = %d, should be 32\n",
4294967295u, bitCount (4294967295u));
return 0;
}
int bitCount (unsigned int n) {
/* your code here */
}
有人可以幫助我確切地了解您的要求嗎? bitCount是否應該將輸入的十進制轉換為二進制,然后計算1的數量?
該函數沒有“十進制”輸入,它是通過普通數字(似乎是unsigned
)傳遞的。 它們將以二進制形式存儲在大多數典型計算機上。
我想它將返回這些值,例如:
bitcount(0)
-> 0(因為0沒有設置位) bitcount(1)
-> 1(因為1是二進制中的1 2 ) bitcount(2)
-> 1(因為2是二進制的10 2 ) bitcount(3)
-> 2(因為3是二進制的11 2 ) 調用函數的源代碼中給出的基數無所謂,一旦程序運行,它將轉換為二進制。 您可以像bitcount(01)
(八進制)或bitcount(0x80)
這樣稱呼它,它仍然只是獲得一個unsigned int
其值可以假定存儲在二進制中。
bitcount(x)
遞歸算法如下:
請注意,偽代碼不假定數字x
以任何特定方式存儲 (無論是二進制形式還是其他形式),而是對數字本身起作用。 偽代碼中的文字是十進制的,但這只是符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.