其他分享
首页 > 其他分享> > 十六——十

十六——十

作者:互联网

十六转十
#include <stdio.h> #include <string.h> /* 十六进制数转换为十进制数 */ long hexToDec(char *source); /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch); int main() { char *hex = "75BCD15"; printf("16进制数:\t%s\n", hex); printf("10进制数:\t%ld\n", hexToDec(hex)); return 0; } /* 十六进制数转换为十进制数 */ long hexToDec(char *source) { long sum = 0; long t = 1; int i, len; len = strlen(source); for(i=len-1; i>=0; i--) { sum += t * getIndexOfSigns(*(source + i)); t *= 16; } return sum; } /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch) { if(ch >= '0' && ch <= '9') { return ch - '0'; } if(ch >= 'A' && ch <='F') { return ch - 'A' + 10; } if(ch >= 'a' && ch <= 'f') { return ch - 'a' + 10; } return -1; }

  

 

 

 

#include<stdio.h>
 int main()
 {
 	char a[40]="0123456789ABCDEF";//用一个数组存储十六进制数
 	char b[100];//储存输入的十进制数对应的十六进制数
	int n;
	int cnt;//计数
	
	scanf("%d",&n);//输入要转换的十进制数
	
	if(n==0)
		printf("0");
	while(n!=0)
	{
		b[++cnt]=a[n%16];//这里cnt从1开始
		n=n/16;
	 } 
	
	for(int i=cnt;i>0;i--)/*上面cnt从1开始所以i>0,不用输出b[0]。逆序输出*/
		printf("%c",b[i]);
	 
 	return 0;
 }

  

 

 

标签:十六进制,cnt,ch,int,十六,char,printf
来源: https://www.cnblogs.com/shy123/p/16337876.html