mfc 如何将16进制的Cstring数据转成16进制的DWORD数据?
#include int main(void){char a[]="0x3f3f";char b[10] = {0x00};char *p;int nLen,nTotal;int i;if (a[0] == '0' && a[1] == 'x'){nLen = strlen(a + 2);nTotal = nLen/2;}else{printf("请输入正确的十六进制格式!\n");}if (nLen == 0){printf("请输入正确的十六进制格式!\n");}else{p = b;if (!p){return 0;}for(i = 0;i {if (a[2*i +2] >= '0' && a[2*i + 2] {*p = (a[2*i +2] - '0') * 16;}else if (a[2*i +2] >= 'a' && a[2*i + 2] {*p = ((a[2*i +2] - 'a') + 10) * 16;}else if (a[2*i +2] >= 'a' && a[2*i + 2] {*p = ((a[2*i +2] - 'a') + 10) * 16;}else{printf("请输入正确的十六进制格式!\n");break ;}if (a[2*i + 3] >= '0' && a[2*i +3] {*p +=((a[2*i + 3] - '0')); }else if (a[2*i + 3] >= 'a' && a[2*i + 3] {*p +=((a[2*i +3] - 'a') +10);}else if (a[2*i + 3] >= 'A' && a[2*i + 3] {*p +=((a[2*i +3] - 'A') +10);}else{printf("请输入正确的十六进制格式!\n");break ;}p++;}}printf("%s",b);return 1;}程序vc6.0上编译通过。
运行结果正确! 不明白的地方百度Hi俺。
16进制数转字符串
//---------------------------------------------------------------------------#include #define INF "d:\\a.out" /*要读取的二进制文件,可在此修改*/#define OUF "d:\\ahex.txt" /*“转换后的16进制方式排列的”文本文件,可以在此修改*/#define NEW_LINE (5) /*“转换后的”文本文件中每行的十六进制数字文本的最大数量*/int main(void){FILE *f1,*f2;int bin,gtn=0;f1=fopen(INF,"rb");f2=fopen(OUF,"w");if (f1&&f2) {while (!feof(f1)){fread(&bin,sizeof(int),1,f1);fprintf(f2,"%08X ",bin);if (++gtn%NEW_LINE==0) {fputc('\n',f2);gtn=0;}}fclose(f1);fclose(f2);}else if (f2) {fclose(f2);remove(OUF);}return 0;}//---------------------------------------------------------------------------
16进制字符串如何转化16进制数值
如果输入字符串控件的显示方式是16进制的那么转换将无法执行,,请教怎么办,,我串口中读到的字符串格式是16进制的,所以显示的方式只能是16进制的不是正常显示,比如格式是:162A 22,就无法转成10进制数值。
。
请求赐教如何将16进制字符串(显示的方式是16进制的)转换成10进制的
如何将string转换为16进制字符串
字符串和16进制字符串的相互转化#include #include int strToHex(char *ch, char *hex);int hexToStr(char *hex, char *ch);int hexCharToValue(const char ch);char valueToHexCh(const int value);int main(int argc, char *argv[]){char ch[1024];char hex[1024];char result[1024];char *p_ch = ch;char *p_hex = hex;char *p_result = result;printf("please input the string:");scanf("%s",p_ch);strToHex(p_ch,p_hex);printf("the hex is:%s\n",p_hex);hexToStr(p_hex, p_result);printf("the string is:%s\n", p_result);return 0;}int strToHex(char *ch, char *hex){int high,low;int tmp = 0;if(ch == NULL || hex == NULL){return -1;}if(strlen(ch) == 0){return -2;}while(*ch){tmp = (int)*ch;high = tmp >> 4;low = tmp & 15;*hex++ = valueToHexCh(high); //先写高字节*hex++ = valueToHexCh(low); //其次写低字节ch++;}*hex = '\0';return 0;}int hexToStr(char *hex, char *ch){int high,low;int tmp = 0;if(hex == NULL || ch == NULL){return -1;}if(strlen(hex) %2 == 1){return -2;}while(*hex){high = hexCharToValue(*hex);if(high = '0' && ch = 'a' && ch = 'A' && ch = 0 && value = 10 && value <= 15){result = (char)(value - 10 + 65); //减去10则找出其在16进制的偏移量,65为ascii的'A'的字符编码值}else{;}return result;}
如何将一个字符串转成所需要的16进制数字
#includeint fun(char *s,int n) { int r=0;while ( *s ) {r*=n;if ( *s>='0' && *selse if ( *s>='A' && *selse if ( *s>='a' && *ss++;}return r;}void main() { int x; char s[80];scanf("%s",s); x=fun(s,16); printf("%xH\n",s); //假设字符串中输入的是十六进制数据}
C语言 十六进制字符串转十进制
#include #include void main(){int i=0,j=0,result=0,index=0,cindex=0;char a[100],b[100],c[4];gets(a);//输入数据 for(i=0 ; i{/*将16进制转换成10进制*/if(a[i]>='a' && a[i]result = result*16 + a[i]-'a'+10;else if(a[i]>='A' && a[i]result = result*16 + a[i]-'A'+10;elseresult = result*16 + a[i]-'0';/*每两位处理一次*/if(i%2!=0){cindex = 0;do{c[cindex++] = result%10 + '0';//倒序存放在c中 result/=10;}while(result!=0);for(j=cindex-1; j>=0; j--)//翻转后存放在b中 b[index++] = c[j];}} b[index] = '\0';//加上串结束符 puts(b);//输出 }测试结果:
如何将16进制的字符串转换为16进制的数字
byte数组转换成16进制字符串String:public class CommonUtil {/*** byte数组转换成16进制字符串* @param src* @return*/public static String bytesToHexString(byte[] src){StringBuilder stringBuilder = new StringBuilder();if (src == null || src.length <= 0) {return null;}for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}}byte数组转换成16进制字符数组String[]:public class CommonUtil {/*** byte数组转换成16进制字符数组* @param src* @return*/public static String[] bytesToHexStrings(byte[] src){if (src == null || src.length <= 0) {return null;}String[] str = new String[src.length];for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {str[i] = "0";}str[i] = hv;}return str;}}
怎么把一个字符串转换成16进制数据
要看你的字符串是怎么写的。
例如: char s[]="07BC3A";int v;你可以用 sscanf(s,"%x",&v); 变成整型值,存入 v. 你也可以用 strtol 函数, v = strtol(s, NULL, 16); 赋给 v. 打印16进制数值: printf("%#x", v);
转载请注明出处51数据库 » dword转16进制字符串
夏亚-雷鸣