十六进制转十进制
来源:互联网 发布:突破电信80端口限制 编辑:程序博客网 时间:2024/04/28 02:34
花了点时间把 hex 转 dec的代码写了下,特别是 ‘A’ ‘a’ 的操作。
#include<stdio.h>int multiple16(int i){ // 16 will be multipled i times int sum=1; if (i == 0) return 1; while(--i) sum *= 16; return sum;}char transHex(char* hex1){ char hex = *hex1; if (hex >= 'A' && hex <= 'Z') return hex-'A'+10; if (hex >= 'a' && hex <= 'z') return hex-'a'+10; if (hex >= '0' && hex <= '9') return hex-'0';}int hexToDec(char* hex){ int len=strlen(hex); int sum=0; // two ways to calculate it#if 0 while(len) sum += transHex(hex++)* multiple16(len--);#else while(--len) sum = (sum + transHex(hex++))* 16; sum += transHex(hex);#endif return sum;}char* decToHex(int dec){ char hex[100]={0}; char ptr[100]={0}; int i=0,j=0; while(dec){ int tmp= dec%16; if (tmp >=10) hex[i++] = tmp-10+'A'; else hex[i++] = tmp+'0'; dec = dec/16; } int len = strlen(hex);#if 0 int ii=0, jj=len-1; while (ii<=jj) { char tmp; tmp = hex[jj]; hex[jj] = hex[ii]; hex[ii] = tmp; ii++; jj--; } return hex;#else while(len--) ptr[j++] = hex[len]; return ptr;#endif}void main(void){ char *buffer="AB"; int i =88931; printf("%d\n",hexToDec(buffer)); printf("%s\n",decToHex(i));}
- Bailian4003 十六进制转十进制【十六进制】
- 十六进制转十进制
- 十六进制转十进制
- 十进制转十六进制
- hta 十六进制转十进制
- 十进制转十六进制 代码
- delphi 十六进制转十进制
- 十进制转十六进制
- 十六进制转十进制函数
- 十六进制转十进制
- 十进制转十六进制
- 十进制转十六进制方法
- 十进制转十六进制
- 十进制转十六进制
- 十六进制转十进制
- 十进制转十六进制
- 十进制转十六进制
- shell 十六进制转十进制
- Tomcat默认打开项目设置
- bash shell
- LoadRunner8.1破解汉化过程
- 如何用SQL语句给表增加字段?
- 无线网络OSI七层模型的释义
- 十六进制转十进制
- 伺服电机以左轮为支点和右轮为支点以及原点各旋转一周
- Oracle LOB相关系列一
- 2013年部分节假日安排时间表
- 如果你以前没有使用过RegExp对象,你需要下载VBScript 5.0 DLL
- Ubuntu 12.04 下安装 Eclipse
- 计算两个日期之间工作日天数
- JAXB
- 打造开发人员喜欢的产品经理