[問題] 用 bitwise operator 把十進位轉成二進位
開發平台(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++,不過也沒有很紮實..)
希望問的問題不會太笨 >"<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.213.175
→
03/13 22:54, , 1F
03/13 22:54, 1F
→
03/13 23:01, , 2F
03/13 23:01, 2F
→
03/13 23:02, , 3F
03/13 23:02, 3F
→
03/13 23:12, , 4F
03/13 23:12, 4F
→
03/13 23:20, , 5F
03/13 23:20, 5F
→
03/13 23:22, , 6F
03/13 23:22, 6F
→
03/13 23:25, , 7F
03/13 23:25, 7F
→
03/13 23:28, , 8F
03/13 23:28, 8F
→
03/13 23:56, , 9F
03/13 23:56, 9F
→
03/14 00:04, , 10F
03/14 00:04, 10F
→
03/14 00:07, , 11F
03/14 00:07, 11F
→
03/14 00:08, , 12F
03/14 00:08, 12F
→
03/14 00:15, , 13F
03/14 00:15, 13F
→
03/14 00:15, , 14F
03/14 00:15, 14F
→
03/14 00:16, , 15F
03/14 00:16, 15F
→
03/14 00:18, , 16F
03/14 00:18, 16F
→
03/14 00:19, , 17F
03/14 00:19, 17F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):