作者wodada (wodada)
看板C_and_CPP
標題[問題] 關於十進位轉二進位小問題
時間Sat Apr 20 19:43:54 2013
末學自行寫了一個進位轉換問題
雖然寫出來了
但為了想更進一步了解其中一個指令用法
於是做了一個小小的變動
程式碼如下:
#include <stdio.h>
void printbin(unsigned int n);
int main()
{
unsigned int num;
while(scanf("%lu",&num)== 1)
{
printf("binary->");
printbin(num);
putchar('\n');
}
return 0;
}
void printbin(unsigned int n)
{
int digit;
digit= n%2;
if(n>=2)
printbin(n/2);
putchar('0'+digit);
return ;
}
本人用簡單遞迴所寫的
問題來了,如果我將倒數第二行(也就是putchar('0'+digit))
改為putchar((char)digit)
此時執行會出現亂碼
可否告知小弟原因為何嗎???
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.40.244
推 b10030012:ascii code 你要 (char) 後要加48 04/20 20:19
→ b10030012:putchar((char)digit +48); 04/20 20:19
推 LPH66:而 '0' 就是 48 04/20 20:27
→ wodada:原來如此,謝謝!! 04/20 21:18