Re: [問題] 用 bitwise operator 把十進位轉成二進位
※ 引述《nmns0110 (君詠)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev-C++, Win7
: 餵入的資料(Input):
: 3
: 預期的正確結果(Expected Output):
: 000
: 001
: 010
: 011
: 100
: 101
: 110
: 111
: 錯誤結果(Wrong Output):
: 000
: 111
: 000
: 111
: 000
: 111
: 000
: 111
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: int length,i,j;
: char *binary = 0;
: length = (int) ceil( log(n)/log(2) );
: binary = (char*) malloc( sizeof(char)*(length+2) );
: binary[length+1] = NULL;
: for( i = 0; i < pow(2,n); i++ )
: {
: for( j = length; j >= 0; j-- )
: {
: if( n&1 )
: binary[j] = '1';
: else
: binary[j] = '0';
: n >> 1;
: }
: printf("%s\n",binary);
: }
: 補充說明(Supplement):
: 這幾天才剛開始學 C (之前是學C++,不過也沒有很紮實..)
: 希望問的問題不會太笨 >"<
我想應該是這樣
for( i = 0; i < pow(2,n); i++ )
{
int temp=i;
for( j = length; j >= 0; j-- )
{
if( temp&1 )
binary[j] = '1';
else
binary[j] = '0';
temp = temp >> 1;
}
printf("%s\n",binary);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.240.128.241
推
03/13 23:12, , 1F
03/13 23:12, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):