sprintf(buf, "%x%x%x", arr[0], arr[1], arr[2]);buf为转换后的字符串。可以printf先看下是不是需要的。如果是64位的十六进制,可以写成 sprintf(buf, "% "PRIx64" % "PRIx64" % "PRIx64" ", arr[0], arr[1], arr[2]);...
void dec2bin(int n){if(n>1)dec2bin(n/2);printf("%d",n%2);} int main(){int n;scanf("%x",&n);dec2bin(n);return 0;}
编写一函数!请注意是一个函数,虽然 include <stdio.h> void main(){ int a=0;printf("please input your number:\n");scanf("%x",&a);printf("the result is %d",a);getch();} 也可以,但这绝不是题目要求。include "stdio.h"include "string.h"long DEC( char *HEX );int Ture(...
include <stdio.h>int IsHexChar(char ch){if((ch>='0' && ch<='9') || (ch>='a' && ch<='f') ||(ch>='A' && ch<='F'))return 1;elsereturn 0;}int main(){char str[1000] = "123342abcdAFB1H";int cnt = 0;int i;printf("input str:\n");//gets(str);i =...
int a; cin>>a; if(a<=0) return 0; cout<<"输入基数(2-16之间):"<<endl; int b; cin>>b; if(b<2 || b>16) { cout<<"输入基数错误!"<<endl; return 0; } char c[100]; int i=0; for(;;) { if(a...
源代码: /*十六进制转换成十进制*/#include<stdio.h>intmain(void){inti,k;charhexad[80],str[80];longnumber;printf("Enter a string:");i=0;while((str[i]=getchar())!='\n')i++;str[i]='\0';/*过滤非十六进制字符后生成新字符串*/k=0;for(i=0;str[i]!='\0';i++)if(str[i]...
这个是因为中文字符的编码方式和ascii是不一样的,你用的是gbk编码方式,每个中文汉字是两个字节,且编码上高位的字节都是1,这是编码表上设定好的,如果采用utf8编码,那么又是另外一套编码方式,输出也会不一样
把最后的printf("%d",sum)改成printf("%u",sum)。所有大于0x80000000的数用%d输出时,都是负数。
你发错地方了..同学