如何用c语言实现10进制转换成16进制 c语言编程 把十进制转换为十六进制

C\u8bed\u8a00\u5982\u4f55\u5b9e\u73b0\u5341\u516d\u8fdb\u5236\u8f6c\u6362\u6210\u5341\u8fdb\u5236

C\u8bed\u8a00_012_\u5341\u516d\u8fdb\u5236\u8f6c\u5341\u8fdb\u5236

\u65b9\u6cd5\u4e00\uff1a#include#include using namespace std;
string DecIntToHexStr(long long num){string str;long long Temp = num / 16;int left = num % 16;if (Temp > 0)str +=
DecIntToHexStr(Temp);if (left < 10)str += (left + '0');elsestr += ('A' + left - 10);return str;}string DecStrToHexStr(string str){long long Dec = 0;for (int i = 0; i < str.size(); ++i)Dec =
Dec * 10 + str[i] - '0';return DecIntToHexStr(Dec);}int main(){string DecStr;while (cin >> DecStr){cout << "0x" + DecStrToHexStr(DecStr);}return 0;}
\u65b9\u6cd5\u4e8c\uff1a
#include#include #include
#include #include using namespace std;int main()
{string decStr;cin >> decStr;int num = stoi(decStr);vectorv;while (num){int bit = num % 2;v.push_back(bit);num = num / 2;}
reverse(v.begin(), v.end());string hexStr;if (v.size() % 4 == 0){for (int i = 0; i < v.size() / 4; ++i){int temp = 0, k = 3;for (int j = i * 4; j < (i +
1) * 4; ++j){if (v[j] == 1)temp += pow(2, k);--k;} if (temp <= 9)hexStr += temp;elsehexStr += ('A' + temp - 10);}}
else{int zeroNum = 4 - v.size() % 4;for (int i = 0; i < zeroNum; ++i)v.insert(v.begin(), 0);for (int i = 0; i < v.size() / 4; ++i){int temp = 0, k = 3;for
(int j = i * 4; j < (i + 1) * 4; ++j){if (v[j] == 1)temp += pow(2, k);--k;}if (temp <= 9){stringstream ss;string strTemp;
ss > strTemp;hexStr += strTemp;}elsehexStr += ('A' + temp - 10);}}cout << hexStr << endl;return 0;}
\u6269\u5c55\u8d44\u6599\uff1a
\u8fd8\u67093\u79cd\u65b9\u5f0f\u53ef\u4ee5\u5b9e\u73b0\uff0c\u5176\u4e2d\u4e24\u79cd\u662f\u4f7f\u7528\u7cfb\u7edf\u51fd\u6570\uff0c\u53e6\u4e00\u79cd\u662f\u76f4\u63a5\u81ea\u5df1\u7f16\u5199\u3002
\u4e0b\u9762\u7684\u4ee3\u7801\u5c31\u662f3\u79cd\u65b9\u5f0f\u7684\u5b9e\u73b0\uff0c\u5305\u62ec2\u4f4d\u7684\u6574\u6570\u548c\u4efb\u610f\u6574\u6570\uff082\u768431\u6b21\u65b9\u4ee5\u5185\uff09\u90fd\u53ef\u4ee5\u3002\u53ef\u81ea\u5df1\u9009\u62e9\u9700\u8981\u7684\u5b9e\u73b0\u65b9\u5f0f\u3002
\u5229\u7528\u7cfb\u7edf\u51fd\u6570\u6709
1. char * itoa ( int value, char * str, int base );value\u662f\u8981\u8f6c\u5316\u7684\u6570\u5b57\uff0cstr\u662f\u8f6c\u5316\u540e\u7684\u5b57\u7b26\u4e32\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0cbase\u662f\u8fdb\u5236\u6570\uff08\u4f46\u662f\u8fd9\u4e2a\u51fd\u6570\u4e0d\u662f\u6807\u51c6C\u51fd\u6570\uff0c\u6709\u4e9b\u7f16\u8bd1\u5668\u662f\u4e0d\u652f\u6301\u7684\uff01\uff09\u3002\u6240\u4ee5\u4ee3\u7801\u53ef\u4ee5\u4e3a\uff1a
char buffer [33]; //\u7528\u4e8e\u5b58\u653e\u8f6c\u6362\u597d\u7684\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\uff0c\u53ef\u6839\u636e\u9700\u8981\u5b9a\u4e49\u957f\u5ea6 char * inttohex(int aa){ itoa (aa, buffer, 16); return (buffer);}
2. sprintf(str,"%x",value);str\u662f\u8f6c\u5316\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0c%x\u8868\u793a\u5341\u516d\u8fdb\u5236\u683c\u5f0f\uff0cvalue\u662f\u8981\u8f6c\u5316\u7684\u6570\u5b57\u3002\u6240\u4ee5\u4ee3\u7801\u53ef\u4ee5\u4e3a\uff1a
char buffer [33]; //\u7528\u4e8e\u5b58\u653e\u8f6c\u6362\u597d\u7684\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\uff0c\u53ef\u6839\u636e\u9700\u8981\u5b9a\u4e49\u957f\u5ea6 char * inttohex(int aa){ sprintf(buffer, "%x", aa); return (buffer);}
3. \u81ea\u5df1\u7f16\u5199

\u5982\u679c\u53c2\u6570\u53ea\u8981\u4e24\u4f4d\u6570\u7684\u6574\u6570\uff0c\u90a3\u4e48\u5f88\u7b80\u5355\u3002
\u4ee3\u7801\u5982\u4e0b\uff1a
#include #include char buffer [33]; //\u7528\u4e8e\u5b58\u653e\u8f6c\u6362\u597d\u7684\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\uff0c\u53ef\u6839\u636e\u9700\u8981\u5b9a\u4e49\u957f\u5ea6 char * inttohex(int aa)
{ sprintf(buffer, "%x", aa); return (buffer);} int main ()
{ int num; char * hex_str; printf ("Enter a number: "); scanf ("%d",&num); hex_str = inttohex (num); printf ("Hexadecimal number: %sH\n", hex_str); return 0;}

#include <stdio.h>

#define LEN 100

char *decimal2Others (int value, char *string, int radix) { /*十进制数转任意进制*/
/*除基数取余法:十进制数不断除以进制基数直至为零,每次相除取得余数之逆序即为转换结果*/
int remain,i=1,j=0;
    int temp[LEN];

    while (value) { /*除基数取余*/
        remain = value % radix;
        value = value / radix;
        temp[i++] = remain;
    }

    while (--i) { /*逆序存储*/
     if (temp[i] > 9)
     string[j++] = temp[i] - 10 + 'a'; /*十以上进制处理*/
    else
    string[j++] = temp[i] + '0';
}
string[j] = '\0';
return string;
}

int main(void) {  
int n;
char string[LEN]; 

    printf ("请输入十进制数:");
    scanf ("%d",&n);
    putchar ('
');
    puts ("================================================================================
");
    
    printf ("十六进制转换结果:"); 
    decimal2Others (n,string,16);
    puts (string);
    putchar ('
');

getch (); /*屏幕暂留*/
return 0;
}

运行结果



C语言_012_十六进制转十进制



  • 鐢–璇█缂栫▼,杈撳叆涓涓鍗佽繘鍒姝f暣鏁,杈撳嚭鍏跺搴旂殑鍗佸叚杩涘埗鏁存暟銆
    绛旓細return 0;} 杩欐浠g爜棣栧厛閫氳繃`scanf`鍑芥暟鑾峰彇鐢ㄦ埛杈撳叆鐨鍗佽繘鍒鏁帮紝鐒跺悗浣跨敤`printf`鍑芥暟鐨刞%x`鏍煎紡璇存槑绗﹀皢鍗佽繘鍒舵暟杞崲涓鍗佸叚杩涘埗褰㈠紡骞舵墦鍗板嚭鏉ャ傝繖绉嶆柟娉曠洿鎺ュ皢鍗佽繘鍒舵暟杞崲锛屾棤闇鍏堝皢鍏舵媶鍒嗘垚鏁存暟鍜屽皬鏁伴儴鍒嗐傚煎緱娉ㄦ剰鐨勬槸锛C璇█鐨刞printf`鍑芥暟涓殑`%x`浼氳嚜鍔ㄥ鐞嗘暣鏁板埌鍗佸叚杩涘埗鐨勮浆鎹紝鎵浠ユ棤闇...
  • 鐢–璇█缂栧啓,杈撳叆涓涓鍗佽繘鍒骞杞崲鎴浜岃繘鍒
    绛旓細瑕佸皢鍗佽繘鍒惰浆鎹负浜岃繘鍒讹紝鍙互閲囩敤“闄2鍙栦綑”鐨勬柟娉曪紝鍗冲皢鍗佽繘鍒舵暟涓嶆柇闄や互2锛屽彇寰楁瘡涓娆$殑浣欐暟锛屽苟灏嗕綑鏁颁粠浣庝綅鍒伴珮浣嶄緷娆℃帓鍒锛屽嵆鍙緱鍒拌鏁扮殑浜岃繘鍒惰〃绀恒傚湪C璇█涓紝鍙互浣跨敤寰幆鍜屾暟缁勬潵瀹炵幇杩欎釜杞崲杩囩▼銆傚叿浣撴楠ゅ涓嬶細1. 璇诲叆涓涓崄杩涘埗鏁皀锛2. 瀹氫箟涓涓暟缁刟锛岀敤鏉ュ瓨鍌ㄤ簩杩涘埗鏁...
  • c璇█ 鐢ㄦ暟缁瀹炵幇10杩涘埗鏁杞崲涓浜岃繘鍒,鍏繘鍒,鍗佸叚杩涘埗銆
    绛旓細/*璇ュ嚱鏁板彲浠瀹炵幇灏忎簬鏁村瀷鏁版嵁鐨勪换鎰忚繘鍒朵箣闂磋浆鎹*/ /*浠ヤ笅鍑芥暟灏哸杩涘埗鏁皊杞崲鎴恇杩涘埗骞惰緭鍑*/ void f(int a,int b,char s[]){ char r[17];int i,n,t,k;for(n=strlen(s)-1,i=t=0;*(s+i)!='\0';i++,n--) /*杩欓噷鍏杞崲鎴愬崄杩涘埗鏁*/ { if(*(s+i)<='9')t+=(*(...
  • c璇█缂栫▼ 鎶鍗佽繘鍒惰浆鎹负鍗佸叚杩涘埗
    绛旓細鏂规硶涓锛#include<iostream>#include <string>using namespace std;string DecIntToHexStr(long long num){string str;long long Temp = num / 16;int left = num % 16;if (Temp > 0)str += DecIntToHexStr(Temp);if (left < 10)str += (left + '0');elsestr += ('A' + left -...
  • 濡備綍鐢╟璇█瀹炵幇10杩涘埗杞崲鎴16杩涘埗
    绛旓細include <stdio.h>#define LEN 100char *decimal2Others (int value, char *string, int radix) { /*鍗佽繘鍒鏁拌浆浠绘剰杩涘埗*//*闄ゅ熀鏁板彇浣欐硶锛氬崄杩涘埗鏁颁笉鏂櫎浠ヨ繘鍒跺熀鏁扮洿鑷充负闆讹紝姣忔鐩搁櫎鍙栧緱浣欐暟涔嬮嗗簭鍗涓鸿浆鎹缁撴灉*/int remain,i=1,j=0; int temp[LEN]; while (value) { /*闄ゅ熀鏁...
  • C璇█:灏嗕竴涓10杩涘埗鏁存暟杞崲涓2杩涘埗,骞剁粺璁1鍜0鐨勪釜鏁!
    绛旓細int main(){ int n;char n_bin[100];int i=0;int t0=0;int t1=0;printf("n=");scanf("%d",&n);while(n){ n_bin[i]=n&1;if(n_bin[i])t1++;else t0++;n>>=1;i++;} for(i--;i>=0;i--){ printf("%d",n_bin[i]);} printf("\n鏈%d涓0,鏈%d涓1\n",t0,...
  • 璇烽棶鐢–璇█缂栧啓涓涓鍗佽繘鍒惰浆鎹㈡垚浜岃繘鍒舵垨鍏繘鍒舵垨鍗佸叚杩涘埗鐨勭▼搴忛渶瑕...
    绛旓細voidmain(){ //杩涘埗杞崲鍑芥暟鐨勫0鏄 inttransfer(intx);intx;printf("璇疯緭鍏ヤ竴涓鍗佽繘鍒鏁:");scanf("%d",&x);printf("杞崲鎴浜岃繘鍒舵暟鏄:%d\n",transfer(x));} inttransfer(intx){ intp=1,y=0,yushu;while(1){ yushu=x%2;x/=2;y+=yushu*p;p*=10;if(x<2){ y+=x*p;break;...
  • 銆c璇█銆戣緭鍏ヤ竴涓鍗佽繘鍒鏁,杞崲鎴瀵瑰簲鐨勫叓杩涘埗鏁板拰鍗佸叚杩涘埗鏁板苟...
    绛旓細int x,int n){int a[33],i; for(i=0;x;x/=n)a[i++]=x%n; for(i--;i>=0;i--) if(a[i]<10)printf("%d",a[i]); else printf("%c",a[i]+55); printf("\n");}int main(){int x; scanf("%d",&x); printf("%d鐨勫叓杩涘埗锛",x);dec2n(x,8)...
  • C璇█涓鎬庢牱璋冪敤鍑芥暟灏鍗佽繘鍒惰浆鎹㈡垚浜岃繘鍒?
    绛旓細1銆佹墦寮visualC++6.0-鏂囦欢-鏂板缓-鏂囦欢-C++SourceFile銆2銆佽緭鍏ラ澶勭悊鍛戒护鍜屼富鍑芥暟锛歩nclude<stdio.h> /*杈撳叆杈撳嚭澶存枃浠*/ voidmain()/*绌虹被鍨嬶細涓诲嚱鏁*/ 3銆佸畾涔夊彉閲忓拰鏁扮粍鐨勬暟鎹被鍨嬪苟杈撳叆涓涓鍗佽繘鍒锛歩ntb[16],x,k,r,i;/*瀹氫箟鍙橀噺鍜屾暟缁勭殑鏁版嵁绫诲瀷涓烘暣鍨*/ printf("杈撳叆涓涓崄杩涘埗:"...
  • C璇█绋嬪簭鍗佽繘鍒鐨勬暟杞崲鎴鍏繘鍒剁殑鏁
    绛旓細C璇█绋嬪簭鍗佽繘鍒鐨勬暟杞崲鎴鍏繘鍒剁殑鏁扮殑鍔炴硶锛歩nclude <stdio.h>#include <math.h>void main(){int n,a,sum = 0,i =0;printf("鍗佽繘鍒惰緭鍑轰竴涓暟n\n");scanf("%d",&n);while(n){a = n%8;n = n/8;sum += a*pow(10,i);i++;}printf("鍏繘鍒惰緭鍑簊um:%d",sum);} ...
  • 扩展阅读:10进制对照表 ... 用c语言编写10的阶乘 ... c++求10的阶乘 ... 10进制怎么算 ... c语言强制转换规则 ... 10进制转16计算器 ... 求10的阶乘的流程图 ... c语言各进制转换方法 ... 16进制小端 10进制 c# ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网