Chinaunix
标题:
十六进制for循环
[打印本页]
作者:
ckf513728912
时间:
2013-01-18 17:16
标题:
十六进制for循环
还有一个疑问数据拼接
6 int i;
7 char a[SIZE]="00E3";
8 char b[SIZE]="10";
9 char c[SIZE];
10 char d[SIZE];
11 char *s=NULL;
12 for(i=0x0080; i<=0x0180;i++){
13 memset(d,0,SIZE);
14 sprintf(c,"%04X",i);
15 puts(c);
16 // s=strcat(strcat(a,b),c);
17 // puts(s);
18 // strcpy(d,s);
19 // printf("%s\n",d);
20 i+=0x0010;
21 }
小弟弟那个strcat写得有问题, 想要达到效果是某个参数改变其它不变
比如
00E3
0080
10
00E3
0090
10
00E3
00A0
10
00E3
00B0
10
00E3
00C0
10
00E3
00D0
10
00E3
00E0
10
............
怎么去实现比较好,3Q
作者:
linggang_123
时间:
2013-01-18 17:43
int i;
char a[SIZE]="00E3";
char b[SIZE]="10";
char c[SIZE];
char d[SIZE];
char *s=NULL;
for(i=0x0080; i<=0x0180;i++)
{
memset(d,0,SIZE);
memset(c, 0, SIZE);
sprintf(c,"%04X",i*0x0F); // 在使用之前需要进行初始化。。不然里面有脏数据。
puts(c);
strcat(a, c);
s = strcat(a, b);
//s=strcat(strcat(a,b),c);
puts(s);
strcpy(d,s);
printf("%s\n",d);
//i+=0x0010;
}
作者:
sqfasd
时间:
2013-01-18 17:46
char buf[10];
for(int i=0xE3008010;i<=0xE3018010;i+=0x1000){
snprintf(buf, 10, "%X", i);
puts(buf);
}
复制代码
不知能满足要求否?
作者:
ckf513728912
时间:
2013-01-18 18:07
回复
3#
sqfasd
谢谢您,还有没实现。for里面的参数是一个地址,不能那样直接的传,如果那样传的话会有问题。
我得写一个测试脚本,脚本格式如下
00E3:脚本命令
0080:这个是要读的地址位置
10:这是要读出的长度
非常感谢您
作者:
ckf513728912
时间:
2013-01-18 18:14
回复
2#
linggang_123
谢谢您,还没有实现我想要的功能。
我想测试一个硬件里的东西是否正确.
00E3表示脚本命令(不变)
0080表示地址(地址是变的)
10 表示要长度(不变)
作者:
ckf513728912
时间:
2013-01-18 19:34
代码如下,可以实现。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 1024
int main(){
int i;
char a[SIZE]="10";
char c[SIZE];
char *s=NULL;
for(i=0x00F20080; i<=0x00F20180;i++){
memset(c,0x0,SIZE);
sprintf(c,"%08x",i);
s=strncat(c,a,2);
puts(s);
i+=0x000F;
}
return 0;
}
接近自己想要的功能了,发出来的不能当作命令来发送。有点郁闷,哪个大哥再帮忙出点主意。3Q
作者:
lin5161678
时间:
2013-01-19 12:03
sprintf(c,"00E3%04X10",i);//即可
作者:
ckf513728912
时间:
2013-01-20 21:50
回复
7#
lin5161678
谢谢你
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2