#include int binaryNum[16]; //存放轉(zhuǎn)換后得到的二進(jìn)制碼int count=0; //計(jì)數(shù)十進(jìn)制整數(shù)被2除的次數(shù)int oneCount=0; //得到的二進(jìn)制碼中1的個(gè)數(shù)void main(){ int num; printf('輸入一個(gè)十進(jìn)制的整數(shù):'); scanf('%d',&num); while( (num/2) != 1 ){ //判斷條件為:除以2之后的商不等于1 binaryNum[count] = num%2; //取余后的數(shù)字存入數(shù)組 num /= 2; //num = num/2; 進(jìn)行下一輪的判斷 count++; //此變量用來(lái)指定數(shù)組下標(biāo) } binaryNum[count+1] = 1; //最后一次除法做完以后,剩下的商一定是1,所以在最后手動(dòng)添加一個(gè)1 printf('二進(jìn)制數(shù)值為:'); //倒序打印出數(shù)組中的元素 // sizeof(整形數(shù)組)/sizeof(整形單個(gè)元素大小) = 數(shù)組的元素個(gè)數(shù) for( int i=sizeof(binaryNum)/sizeof(int)-1; i>=0; i-- ){ if( binaryNum[i] == 1) oneCount++; //出現(xiàn)一次1就累加 printf('%d',binaryNum[i]); } printf('\n共有%d個(gè)1\n',oneCount);}
|