把内存中的值以16进制输出
来源:互联网 发布:js单选框点击事件 编辑:程序博客网 时间:2024/05/01 21:25
传统的做法是,请看下面两个函数。
typedef unsigned char u_char;void convert(u_char* src,int length){ char* des = (char*)malloc(length*2+1);//多出的一个用来存放\0 int i=0; for(;i<length;i++) { u_char pre = src[i]>>4; //获得前4bite u_char af = src[i]&0x0f;//获得后4bite // filt(pre,des[i*2]); filt(af,des[i*2+1]); } des[i*2] = 0;}void filt(int src,u_char des){ switch(src) { case 0: des = '0'; break; case 1: des = '1'; break; //...... case 10: des ='A'; break; //...... case 15: des = 'F' ;break; default:des = 'X'; }}
有更快的做法就是:
void convert(u_char* src,int length){ char str[] = "0123456789ABCDEF"; char* des = (char*)malloc(length*2+1);//多出的一个用来存放\0 int i=0; for(;i<length;i++) { des[i*2] = str[src[i]>>4];//获得前4bite des[i*2+1] = str[src[i]&0x0f];//获得前后bite } des[i*2] = 0;}巧妙的利用数组来完成,有点像桶排序的思想。这种技巧很值得学习。
- 把内存中的值以16进制输出
- 把内存中的数据转化成16进制显示
- 把内存中的数据转化成16进制显示
- 把内存中的字符串以文本文件方式写入硬盘
- float以16进制打印输出
- python 以16进制打印输出
- C++以16进制输入10进制输出
- C语言 键盘输入一个数字,以16进制输出。
- 以16进制字符串输出二进制缓冲区,带排版
- cout 以2/8/10/16进制输出
- 控制整数以10,16,8进制输出
- C语言中以16进制输出数据
- 把DataGrid中的内容以Excel显示
- ORACLE下把查询的结果以xml输出
- golang: 把sql结果集以json格式输出
- 将16进制的字符串以10进制的方式输出
- 将输入的数以任意进制(16进制以内)输出
- 以 2、3……16 进制输出一无符号整型数
- Android签名总结
- 最近看过的书单(1)
- 共勉:写给那些正奔三的80后
- 编程之美2.10扩展问题求数组中第二大数
- 177本名著浓缩成了177句话!别等自己做错时才明白
- 把内存中的值以16进制输出
- 黑马程序员_io流1
- libvirt 详解(1)
- 解决ubuntu one for windows 无法同步问题- file sync starting
- spfa算法 归纳
- 服务器端WSAAsyncSelect模型编程
- CXF WebService
- winForm界面闪烁问题解决
- 点类派生出直线类(私有继承)