C语言将int型数据转换为十六进制的字符串
来源:互联网 发布:剑三正太捏脸数据 编辑:程序博客网 时间:2024/06/05 19:30
方法一:
int i =0;char * inttohex(int aa,char *buffer){ if (aa < 16) //递归结束条件 { if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; buffer[i+1] = '\0'; //字符串结束标志 } else { inttohex(aa / 16,buffer); //递归调用 i++; //字符串索引+1 aa %= 16; //计算当前值 if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; } return (buffer);}
由于使用了全局变量i来记录下标,每次在调用函数转换前都需要将将i设置成0;
方法二,使用静态变量:
char * inttohex(int aa,char *buffer){ static int i = 0; i = 0; if (aa < 16) //递归结束条件 { if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; buffer[i+1] = '\0'; //字符串结束标志 } else { inttohex(aa / 16,buffer); //递归调用 i++; //字符串索引+1 aa %= 16; //计算当前值 if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; } return (buffer);}
测试代码如下:
char * inttohex(int aa,char *buffer){ static int i = 0; i = 0; if (aa < 16) //递归结束条件 { if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; buffer[i+1] = '\0'; //字符串结束标志 } else { inttohex(aa / 16,buffer); //递归调用 i++; //字符串索引+1 aa %= 16; //计算当前值 if (aa < 10) //当前数转换成字符放入字符串 buffer[i] = aa + '0'; else buffer[i] = aa - 10 + 'a'; } return (buffer);}int my_strLength(char *str){ int len = 0; while (*str != '\0') { len++; str++; } return len;}char * getCRC2(char *string,char *buffer){ int len = my_strLength(string); int sum = 0; for (int i=0; i<len; i++) { sum += (string[i] + i%10); } int low = sum & 0xffff;//获取低16位 return inttohex(low,buffer);}int main(int argc, const char * argv[]) { char buffer1[5],buffer2[5],buffer3[5]; char *str1 = "aaaaaaafadsfasdf"; char *rs1 = getCRC2(str1,buffer1); printf("rs===>:%s \r\n",rs1); char *str2="bbbfffa"; char *rs2 = getCRC2(str2,buffer2); printf("rs2===>:%s \r\n",rs2); char *str3 = "cccccccaaa"; char *rs3 = getCRC2(str3,buffer3); printf("rs3===>:%s \r\n",rs3); return 0;}
0 1
- C语言将int型数据转换为十六进制的字符串
- C语言将十六进制字符串转换成对应的十进制数字
- 编写一个程序,用parseInt()方法将字符串100由十六进制转换为十进制的int型数据。再用valueOf()方法将字符串12345678转换为long型数据。
- 编写一个程序,用valueOf()方法将long型数据12345678转换为字符串。再用toString()方法将十进制int型数据100转换为十六进制数表示的字符串。
- C语言 十六进制字符转换为字符串
- 将字符串形式的十六进制数据转换为十六进制数据(hex)
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- 将十六进制的字符串转换为十进制
- 将十六进制的字符串转换为十进制
- 将int类型大于255的数值转换为十六进制字符串
- Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组
- Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组
- Linux下用C语言将一个字符串格式(char*)的MAC地址转换为十六进制数组
- 将十六进制颜色转换为int类型的数值
- C语言应用:将128位二进制数据转换为十六进制输出
- 我的 Android 求职简历
- JAVA WEB项目-模仿天猫J2EE版
- 快速软件评分实现
- 欢迎使用CSDN-markdown编辑器
- 用jquery获取一个div下的span标签数组,再判断点击事件点击的是哪个span
- C语言将int型数据转换为十六进制的字符串
- 项目配置文件目录问题
- 专升本高数学习总结——不定积分
- Java面试题集
- linux系统jdk安装和配置
- 解决TimePickerDialog和DatePickerDialog在android 4.1 4.2重复出现的bug
- BPMN2.0
- MySQL漂流记(二)
- LeetCode 75. Sort Colors