Sign-up....

跪求指点啊!!各位大哥大姐们帮忙看看..........

CString b="01234567111";

long a[16]={0};

char temp[16]={0};

long L,R.

将b分边以十六进制型式给L和R,应该得到:

L=0x01234567

R=0x11100000

可是在监视器中得到的R是0xffffffd0;

有人知道为什么吗?小弟怎么弄都弄不明白.

分开赋值程序如下:

strcpy(temp,b.GetBuffer(b.GetLength()));

for (int i=0;i<16;i++)

{

a[i]=temp[i]-48;

}//在这里时

for (int m=0;m<2;m++)

{

a[m*8+0]=a[m*8+0]<<28;

a[m*8+1]=a[m*8+1]<<24;

a[m*8+2]=a[m*8+2]<<20;

a[m*8+3]=a[m*8+3]<<16;

a[m*8+4]=a[m*8+4]<<12;

a[m*8+5]=a[m*8+5]<<8;

a[m*8+6]=a[m*8+6]<<4;

if(m==0)

{

for(i=0;i<8;i++)

{

L=L|a[m*8+i];

}

}

else

{

for(i=0;i<3;i++)

{

R=R|a[m*8+i];

}

}

各位帮忙看看!!!谢谢啦

[299 byte] By [郁闷] at [2007-8-15 11:21:43]

VC/MFC

All Classified