永发信息网

VC中内存指针中的数据怎么左移3个bit?

答案:2  悬赏:10  手机版
解决时间 2021-11-17 21:38
  • 提问者网友:我们很暧昧
  • 2021-11-17 16:53
VC中内存指针中的数据怎么左移3个bit?
最佳答案
  • 五星知识达人网友:过活
  • 2021-11-17 17:51
char buffer[512];
int i;
for(i=0;i<512;i++)
{
    buffer[i]<<=3;
   if(i<511) buffer[i]|=(unsigned)buffer[i+1]>>5;
}
全部回答
  • 1楼网友:一袍清酒付
  • 2021-11-17 18:15

你这个描述不对啊, BYTE *byTem[512] 是512个地址,都是4字节的,你要左移动这些指针指向的内容?


int i ;
for( i = 0 ; i < 512 ; i ++ )
    *byTem[i] <<= 3 ;追问这样会不会每个字节后面三个bit都是0了?会不会出现*byTem[1]<<=3后这字节前面的三个bit的数据丢失了,后面三个bit的位置是0?追答是的,这是肯定的,相当于原来的值乘以8,值肯定变了,而且也可能会有溢出追问十分感谢您的帮助!!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯