接受a,b 两个16进制字符串,返回相加的和,以16进制字符串形式保存在*a中
2015-11-23 21:47
465 查看
#include <string.h> #include <stdlib.h> #include <stdio.h> /* 接受a,b 两个16进制字符串,返回相加的和,以16进制字符串形式保存在*a中; */ void strAdd(char *a,char *b){ long temA = strtol(a,NULL,16);//strtol函数将a字符串以16进制的模式解析为整形数。 long temB = strtol(b,NULL,16); //printf("temA = %d,temB = %d\nAfter add:",temA,temB); temA = temA + temB; //printf("temA = %d\n",temA); //sprintf函数将整形temA 以16进制字符串模式保存到*a中。 sprintf(a,"%X",temA); } int main() { char a[] = "0x3"; char b[] = "0xE"; char c[] = "0x1A"; char d[] = "0xA"; char f[100]; char *e; int w,x, y, z,n; strAdd(a,b); printf("%s\n",a); x = strtol( a, NULL, 16); y = strtol( b, NULL, 16 ); z = strtol( c, NULL, 16); w = strtol("sdsa%da@q1",&e,16); printf( "x = %d\n", x ); printf( "y = %d\n", y ); printf( "z = %x\n", z ); printf( "w = %d\n",w); printf( "Error w = %s\n",e); //将整数转换为字符串; n = sprintf(f,"%X",z); printf("f里面的值为%s\n",f); return 0; } /* %% 印出百分比符号,不转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字符串。 %x 整数转成小写十六进位。 %X 整数转成大写十六进位 */ /* #include <stdlib.h> #include <iostream> #include <string> using namespace std; int main(int argc, char *argv[]) { char *a = "0x11"; int A = strtol(a,NULL,10); printf("%d\n",A); } 将st 中字符串,没两个装换为10进制; char st[]="7C7C307C724C7C267C7C7C7C7C3A7C417C7C7C"; int ch[sizeof(st)/2]; char c[sizeof(st)/2]; printf("十六进制 十进制 字符\n"); for(int i=0;i<strlen(st);i=i+2) { ch[i/2]=((st[i]<64?st[i]-48:st[i]-55)*16)+(st[i+1]<64?st[i+1]-48:st[i+1]-55); c[i/2]=ch[i/2]; printf(" %c%c ",st[i],st[i+1]); printf(" %5d",ch[i/2]); printf(" %5c\n",c[i/2]); } */
相关文章推荐
- 微信管理手册(2)
- 消息队列
- Oracle学习——第一章
- acm实用小技巧
- UML类图的表示方式总结
- oracle 学习笔记
- C++ 表达式
- autocad二次开发资料总结
- HPU 1280: 迷上象棋的HH【dp】
- 多线程-GCD1
- angularJS学习之路(十八)---自定义指令执行过程
- 黑马程序员——Map
- vim编辑器
- TextView中ellipsize属性
- I2C和SPI学习资源整理
- java基础入门-常见的DOS命令
- Android DiskLruCache缓存完全解析
- UVa 10574 - Counting Rectangles
- 再不写,我怕就再也不写了-LAMP基础
- 芯片设计流程概述