這是題目。
這是我寫的。
為什么只會輸出一個空白方框?

uj5u.com熱心網友回復:
#include <stdio.h>
void DecToBin(int n, char b[]);
int main(void)
{
int n;
char b[99] = {0};
scanf("%d", &n);
DecToBin(n, b);
return 0;
}
void DecToBin(int n, char b[])
{
int k, j, i = 0;
while (n != 0)
{
// b[i] = n % 2;
b[i] = n % 2 + '0';
n = n / 2;
i++;
}
b[i] = '\0';
//for (j = i - 1; j >= 0; j++)
for (j = i - 1; j >= 0; j--)
{
printf("%c", b[j]);
}
}
uj5u.com熱心網友回復:
void DecToBin(int n,char b[]){
__asm
{
mov edx,n
mov edi,b
xor ecx,ecx
bsr ecx,edx
inc ecx
ror edx,cl
NEXT:
xor al,al
shl edx,1
adc al,30h
stosb
loop NEXT
xor al,al
stosb
}
puts(b);
}
uj5u.com熱心網友回復:
GCC版本
void DecToBin(int n,char b[])
{
__asm__(
"movl %0,%%edx;"
"movl %1,%%edi;"
"xorl %%ecx,%%ecx;"
"bsr %%edx,%%ecx;"
"inc %%ecx;"
"rorl %%cl,%%edx;"
"NEXT:"
"xor %%al,%%al;"
"shl $1,%%edx;"
"adcb $0x30,%%al;"
"stosb;"
"loop NEXT;"
"xor %%al,%%al;"
"stosb;"
::"m"(n),"m"(b)
);
puts(b);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236822.html
標籤:新手樂園
下一篇:devc++源檔案未編譯
