如果d为十进制,x为16进制,可以这样赋值吗?
x=d;
那你这个d 和x 是怎么定义的呢?
没有16进制和10进制的定义方法啊
goose1[140]=(sqnum&0xff000000)>>24;
goose1[141]=(sqnum&0x00ff0000)>>16;
goose1[142]=(sqnum&0x0000ff00)>>8;
goose1[143]=sqnum&0x000000ff;
lantransmit2(goose1,length);
sqnum++;
我的程序是这样的,赋值语句根本不起作用,我可以看到sqnum的值一直在变化,而goose1[143]、goose1[142]、goose1[141]、goose1[140]的值一直没有变化?你看哪有问题?我定义:int sqnum;
char goose1[];
sum 的初始值是多少?
void main(){
int goose1 [5]={0},sqnum=0;//初始为0
printf("%d\n",sizeof(int));//4字节的int
//sqnum=0x00000000 sqnum&0xff000000 = 0x00000000 >>24 =0x00000000
goose1[0]=(sqnum&0xff000000)>>24; // 结果是0
sqnum++;
printf("%d ,%d\n",goose1[0],goose1[1]);
//sqnum=0x00000001 sqnum&0x00ff0000 = 0x00000000>>16 =0x00000000
goose1[1]=(sqnum&0x00ff0000)>>16;
sqnum++;
printf("%d ,%d\n",goose1[1],goose1[2]);
//sqnum=0x00000002 sqnum&0x0000ff00 = 0x00000000>>8 =0x00000000
goose1[2]=(sqnum&0x0000ff00)>>8;
sqnum++;
printf("%d ,%d\n",goose1[2],goose1[3]);
//sqnum=0x00000003 sqnum&0x000000ff = 0x00000003
goose1[3]=sqnum&0x000000ff;
printf("%d \n",goose1[3]);
}