先看下itoa()的函式說明:
功能:把一整數轉換為字串
用法:char *itoa(int value, char *string, int radix);
詳細解釋:itoa是integer to array(將int整型轉化為乙個字串,並將值儲存在陣列string中)的縮寫。
引數:value :待轉化的整數。
radix:是基數的意思,即將value轉化為radix進製的數,範圍介於2-36,比如10表示10進製,16表示16進製制。
*string:儲存轉換後得到的字串。
返回值:char *:指向生成的字串,同*string。
備註:該函式的標頭檔案是「stdlib.h」(包含在iostream裡面)
是windows平台下擴充套件的,標準庫中有sprintf,功能比這個更強,用法跟printf類似。
1//n是要被轉換的十進位制數,bit是要被轉換的進製數
2 #include 3 #include
4using
namespace
std; 56
char * ten_to_other(int num,char* str, int
radix) 717
if(num<0)18
23while(num) //
不能處理num=0的情況24
28 *ptr='
\0';//
此時ptr已經指向字串結尾,而str仍舊指向字串開始。
29 ptr--;//
讓ptr指向字串內容!!
30char *start=(negtive)? str+1:str;//
注意此處不能寫str++,否則,str不指向儲存值的首位址了
31while(start3242
/*int len=strlen(str);
43int i = (negtive)? 1:0;
44for(i; i45 */
50return
null;
51}
52int
main()
53;
55 ten_to_other(-82,a,6
); 56 cout57 system("
pause
");
58return0;
59 }
C 實現10進製轉2進製
這幾天在複習計算機原理,看到二進位制忽然想到二進位制轉10進製的公式,然後轉念一想10進製轉二進位制的公式好像沒印象,那索性自己寫出來。結果學渣的我發現,並不能寫出來!什麼數列,對數,xx函式忘得一乾二淨,而且需要有需要判斷的地方,於是崩潰了,以前代數題並沒寫過條件啊 索性用c 搞出來 雖然在c 裡...
SQL實現16進製製到10進製的轉換
sql 實現對 16進製制 到10進製的轉換 create function dbo.f hex dec s varchar 16 returns bigint asbegin declare i int result bigint select i 0 result 0,s rtrim ltrim...
linux 下實現 itoa 轉二進位制
linux下,需要將整數轉化為二進位制,很自然想到itoa,發現這函式竟然編譯不通過。標準庫中貌似有這個實現,不明白了 網上參考了帖子,下面實現 感覺這方法有點費腦,不是很直觀。取模的方法一般都是從低位到高位,所以儲存的字串結果一般會跟需要的結果相反,需要倒轉,要解決這個問題,可以從字串陣列後面開始...