2 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
#include <string>
#include <iostream>
using namespace std;
string foo(int n)
{
string str;
for(unsigned i=0; i<32; ++i)
{
str.insert(str.begin(),'0'+(n&1));
n >>= 1;
}
return str;
}
void main(void)
{
cout<<foo(567)<<endl;
}

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
1.在這里,return 0;的作用僅僅是表示mian()函數(shù)運(yùn)行結(jié)束。作用是不執(zhí)行后面的的system("pause"); 語句.
2.函數(shù)itoa求出的只是該二進(jìn)制數(shù)對(duì)應(yīng)的“字符串”是char類型,不是int類型的數(shù)據(jù)。這里只是看個(gè)結(jié)果,所以,用字符串足已。
請(qǐng)看:
printf("%s\n","10101011");
printf("%d\n",10101011);
二者輸出結(jié)果完全一樣!
如果你想存在int類型數(shù)據(jù)中,簡單的很,前面再加atoi()函數(shù)即可。
請(qǐng)看:
int num = atoi( itoa(num, str, 2) );
printf("%d\n",num);
3.:%s是是輸出字符串的格式控制符,%c是輸出單個(gè)字符的格式控制符。
添加回答
舉報(bào)