在c语言中用最简单的方法把十进制转化为十六进制 c语言中,怎么将十进制的整数转换成十六进制的数,不是简单的用...

c\u8bed\u8a00\u7f16\u7a0b \u628a\u5341\u8fdb\u5236\u8f6c\u6362\u4e3a\u5341\u516d\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

void main()
{
int n;
int i,j,r; // r: remainder;

char sn[16];
char temp;

cin >> n;


i = 0;
do
{
r = n % 16;
sn[i++] = r<10 ? r+'0' : r-10 + 'A';
} while ( n/=16 );

sn[i] = '\0';

for( j=0, i--; j<i; j++, i-- )
{
temp = sn[i];
sn[i] = sn[j];
sn[j] = temp;
}

cout << sn << '\n';
}

代码如下:

#include "stdio.h" 
int main() 

int num=0;
int a[100]; 
int i=0; 
int m=0;
int yushu; 
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("请输入一个十进制整数:"); 
scanf("%d",&num); 
while(num>0) 

yushu=num%16; 
a[i++]=yushu; 
num=num/16; 

printf("转化为十六进制的数为:0x"); 
for(i=i-1;i>=0;i--)//倒序输出 {
m=a[i];
printf("%c",hex[m]); 

printf("
"); 
}

程序运行结果:

扩展资料

C语言中,十进制转换十六进制,可以先输入十进制整数,然后去拼十六进制,十六进制由数字 0~9、字母 A~F 或 a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头,只需把二进制除以16得到余数去上面定义的hex[16]数组进行取值接可以得到转换的数字。

参考资料:百度百科-十六进制



#include <stdio.h>

void dec2hex(int n)

{if(n>15)dec2hex(n/16);

printf("%c",n%16<10?n%16+'0':n%16+55);

}

int main()

{int n;

scanf("%d",&n);

dec2hex(n);

return 0;

}

 



#include <stdio.h>
int main()
{
    int a;
    printf("input a num:");
    scanf("%d",&a);
    printf("HEX:0x%02x",a);   
    return 0;
}



#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    printf("%X", n);
    return 0;
}

 %x %X就是以十六进制的形式输出一个整数,字母的大小写形式与x相同



在printf函数中,你可以用%x格式来输出16进制
如:
int a = 10;
printf("%x", a);

  • 鍦╟璇█涓敤鏈绠鍗曠殑鏂规硶鎶婂崄杩涘埗杞寲涓哄崄鍏繘鍒
    绛旓細"璇疯緭鍏ヤ竴涓鍗佽繘鍒舵暣鏁帮細"); scanf("%d",&num); while(num>0) { yushu=num%16; a[i++]=yushu; num=num/16; } printf("杞寲涓哄崄鍏繘鍒剁殑鏁颁负锛0x"); for(i=i-1;i>=0;i--)//鍊掑簭杈撳嚭 {m=a[i];printf("%c",hex[m]); } printf("\n"); }绋嬪簭杩愯缁撴灉锛...
  • 璇鐢涓涓緢绠鍗曠殑C璇█绋嬪簭:鍗佽繘鍒惰浆鎹负浜岃繘鍒躲
    绛旓細include "stdio.h"int main(){ int n;int i=0,j;char str[100]={0};char output[100]={0};printf("璇疯緭鍏ヤ竴涓暣鏁帮細");scanf("%d",&n);while(n){ str[i]=n%2+'0';n=n/2;i++;} for(j=0;j
  • 缁冧範鏈绠鍗曠殑printf鍜宻canf(鎶婂崄杩涘埗杞寲涓8鍜16杩涘埗)
    绛旓細浠g爜濡備笅锛歩nclude <stdio.h> int main (){ int x;printf("璇蜂綘杈撳叆x锛");scanf("%d",&x);printf("鍗佸叚杩涘埗涓猴細%x\n鍏繘鍒朵负锛%o\n",x,x); //鍙互璋冧负涓よ杈撳嚭 return 0;}
  • 鐢–璇█鎶婂崄杩涘埗杞崲涓8杩涘埗,鏈濂界敤鏍堢粨鏋
    绛旓細void dec2oct(int x) //灏嗗崄杩涘埗鏁皒杞寲涓8杩涘埗鏁拌緭鍑 {if(x>7)dec2oct(x/8); //濡傛灉 x 涓嶆涓浣8杩涘埗鏁帮紝鍒欏厛澶勭悊鍏堕珮浣嶉儴鍒 printf("%d",x%8); //閫掑綊杩斿洖鏃跺啀杈撳嚭 x 鐨勬渶浣庝綅 } int main(){int x;scanf("%d",&x); //璇诲叆瑕佽浆鎹鐨勫崄杩鍒舵暟x dec2oct(x...
  • 鐢╟璇█缂栦竴涓绠鍗曠殑杩涘埗杞崲绋嬪簭
    绛旓細缁欎綘鎵撲釜绠鍗鐨勶紝鎴戝凡缁忔祴璇曚簡锛宨nclude<stdio.h> void main(){ int a;printf("璇疯緭鍏ヤ竴涓崄杩涘埗鏁癨n");scanf("%d",&a);printf("璇ユ暟鐨勫崄鍏繘鍒舵槸锛%x\n",a);printf("璇ユ暟鐨勫叓杩涘埗鏄細%o\n",a);}
  • c璇█,杈撳叆涓涓簩杩涘埗鏁,杈撳嚭瀹冪殑鍗佽繘鍒舵暟,鏈绠鍗曠殑
    绛旓細include <stdio.h> int main(){ int len,i=0,number=0;char c[100];do { scanf("%c",&c[i]);i++;}while(c[i-1]!='\n');len=i-1;for(i=0;i<len;i++){ number=(number<<1)|(c[i]-'0');} printf("%d\n",number);return 0;} ...
  • 鐢╟璇█鎶婂崄杩涘埗鐨勬暟杞负浜岃繘鍒(涓嶇敤鏁扮粍鐨勬柟娉) 鎬庡仛???
    绛旓細include <stdio.h>void d2b(long x){ if(x>1)d2b(x/2);printf("%ld",x%2);} int main(){long a;scanf("%ld",&a);d2b(a);printf("\n");getch();return 0;}
  • C璇█缂栫▼,杈撳叆鍗佽繘鍒舵暟杈撳嚭鍗佸叚杩涘埗鍜屽叓杩涘埗
    绛旓細"F");break;default: printf("%d",arr[i]);}printf("\n\n\n"); } int main() {int num,choo; loop: printf("璇烽夋嫨鍔熻兘锛0.閫鍑 1.鍗佽繘鍒惰浆浜岃繘鍒 2.鍗佽繘鍒惰浆鍏繘鍒 3.鍗佽繘鍒惰浆鍗佸叚杩涘埗\n");scanf("%d",&choo);switch (choo){case 1:printf("璇疯緭鍏ヨ杞崲鐨勫崄杩...
  • C璇█涓濡備綍鐢绠楁硶瀹炵幇杩涘埗闂寸殑杞寲?
    绛旓細C璇█涓瀹炵幇10杩涘埗杞崲涓轰换鎰忚繘鍒剁殑杩囩▼涓猴細瀹氫箟鏁扮粍int rs[32]锛屼繚瀛樿浆鎹㈠悗鐨勬暟鎹紝鏁存暟鐨勮浆鎹㈢粨鏋滄渶澶32浣嶏紙4瀛楄妭*8浣嶏級瀹氫箟涓涓暟缁刢har map[]={'0','1','2','3',...,'9','A','B',...'F'}锛屽畬鎴愮浉搴旀暟鍊煎搴旂殑杞崲鍚庣殑瀛楃 杈撳叆10杩涘埗鏁帮紙鏁存暟锛塶um 杞叆杞崲杩涘埗鍩烘暟锛2-16锛...
  • C璇█鐢1涓10杩涘埗鏁拌〃绀哄瓧绗︿覆,骞惰緭鍑鸿鍊兼庝箞鍋?
    绛旓細瑕佹妸涓涓崄杩涘埗褰㈠紡鐨勬暣鏁版暟瀛楀瓧绗︿覆锛岃浆鎹负涓涓崄杩涘埗鏁存暟锛屽彲浠ョ敤浠ヤ笅鐨勫姙娉锛歝har s[]="12345678";int i,n=0;for(i=0;s[i];i++)n=n*10+s[i]-'0';printf("%d",n);杩愯杩欐浠g爜鍚庡彲浠ヨ緭鍑猴細12345678
  • 扩展阅读:c++语言入门自学 ... 学习c++的视频 ... 一节课就可以学会c++视频 ... c十十编程要学多久 ... 少儿编程一般学几年 ... c++编程适合几岁学 ... 计算机入门自学教程 ... 十大编程语言排名 ... c++编程 ...

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