高分求一个简单的C程序

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:27:30
一个芯片(炬力的ATT7022B)中的寄存器存有二进制数,地址是0x01~0x0c。
现在要把这些地址里的二进制数依次读出来,再判断最高位。
最高位如果是0,则对该数除以2^8,
最高位如果是1,则对该数取反加1再除以2^8,

我是菜鸟,实在不知道该怎么写啊,高手们帮帮忙,小弟谢谢了啊

搞错, 也不知道你要按什么读, 不过按字节读的话就是这种:

typedef unsgiend char YourType; // 这里自己换
for(int i = 0x1; i < 0xc; i += sizeof(YourType)/sizeof(char))
{
YourType* p = (YourType*)i;
if(*p & (1 << sizeof(YourType) - 1))
*p = (~*p + 1) >> 8;
else
*p >>= 8;
}

int *p,i,temp;
for(int i = 0x1; i <= 0xc;i++)
{
p=i;
for(temp = *p;temp > 2;temp /= 2);
if(temp == 0){(*a) >> 8;}
if(temp == 1){(~(*a)+1) >> 8;}

}