首页 > 编程知识 正文

c语言10位转16位,16转10进制c语言

时间:2024-03-25 09:49:56 阅读:332462 作者:IWTK

本文目录一览:

在c语言中用最简单的方法把十进制转化为十六进制

代码如下:

#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(num0) 

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

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

在C语言中如何将10进制转换成16进制?

根据10进制转换为16进制的规则,编写C语言程序将10进制数转换为16进制数。

具体实现方法可参考如下程序:

#includestdio.h

void main()

{

    int i, x; // x表示欲转换的10进制数

    int data[10], index=0;  // data数组存放转换后的16进制数,index表示下标

    scanf("%d", x);  // 接受欲转换的10进制数

    for(i=0; i10; i++)  // 对数组data进行初始赋值操作

        data[i] = 0;

    printf("%d对应的16进制为:", x);

    // 反复相除取余,并将余数存放在data数组中

    while(x0)

    {

     data[index] = x%16;

     x = x/16;

     index++;

    }

    // 逆序输出data数组中的元素,即为10进制数对应的16进制数

    for(i=index-1; i=0; i--)

     printf("%d", data[i]);

    printf("n");

}

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

C语言十进制转十六进制数的源代码如下:

#includebits/stdc++.h

using namespace std;

void IntZh0x(int n)

{int s=n%16;

if(n/16!=0) IntZh0x(n/16);

if(s9)

{

if(s==15) cout"F";

else if(s==14) cout"E";

else if(s==13) cout"D";

else if(s==12) cout"C";

else if(s==11) cout"B";

else if(s==10) cout"A";

}

else couts;

}

int main(){

int n;

cinn;

IntZh0x(n);

return 0;

}

扩展资料

1、十六进制数转换成十进制数解,其值为各个位码乘以位权然后完全相加。

2、十六进制就是把 4 个二进制位组合为一位来表示,每一位有0b0000 ~ 0b1111 共 16 个值,用 0 ~ 9 再加上 A ~ F(或 a ~ f)表示,那么它自然就是逢十六进位,它本质上同二进制是一样的,是二进制的一种缩写形式。

c语言编程 把十进制转换为十六进制

方法一:

#includeiostream

#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'); else str += ('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;}

方法二:

#includeiostream

#include string

#includevector

#include sstream

#include math.h

using namespace std;int main()

{ string decStr; cin decStr; int num = stoi(decStr); vectorintv; 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; else hexStr += ('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 temp; ss strTemp; hexStr += strTemp; } else hexStr += ('A' + temp - 10); } } cout hexStr endl; return 0;}

扩展资料:

还有3种方式可以实现,其中两种是使用系统函数,另一种是直接自己编写。

下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。

利用系统函数有

1. char *  itoa ( int value, char * str, int base );value是要转化的数字,str是转化后的字符串存储的位置,base是进制数(但是这个函数不是标准C函数,有些编译器是不支持的!)。所以代码可以为:

char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 char * inttohex(int aa){    itoa (aa, buffer, 16);    return (buffer);}

2. sprintf(str,"%x",value);str是转化存储的位置,%x表示十六进制格式,value是要转化的数字。所以代码可以为:

char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 char * inttohex(int aa){    sprintf(buffer, "%x", aa);    return (buffer);}

3. 自己编写

如果参数只要两位数的整数,那么很简单。

代码如下:

#include stdio.h#include stdlib.h char buffer [33]; //用于存放转换好的十六进制字符串,可根据需要定义长度 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: %sHn", hex_str);  return 0;}

求c语言将十进制数转换为16进制的函数

c语言将十进制数转换为16进制的函数:

#includestdio.h

main()

{

int u10;

char u16[10];

int w=0,a,b,i;

printf("请输入一个数字--");

scanf("%d",u10);

if(u10==0)

{

u16[0]='0';

w++;

}

else

{

a=u10;

while(a)

{

b=a%16;

if(b10)

{

u16[w]='0'+b;

}

else

{

u16[w]='A'+b-10;

}

a=a/16;

w++;

}

}

printf("n");

printf("%d(10)转换为16进制数字为:",u10);

for(i=w-1;i=0;i--)

{

printf("%c",u16[i]);

}

printf("n");

}

扩展资料:

十进制数转换为二进制数方法

十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2.十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

参考资料:

百度百科-十进制

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。