我如何只反转C中整数(32位)的最后8位?

问题描述 投票:0回答:1

我已经在C中实现了以下功能,但无法正常工作。

int reverse(int org_num){
   int rev_num=0;
   int i=1;
   while(i<=8){
       int last_bit=org_num&1;
       rev_num=rev_num|last_bit;
       rev_num=rev_num<<1;
       org_num=org_num>>1;

       i=i+1;
   }
   return rev_num; }
c bit
1个回答
0
投票

据我所知,您没有将其余的位(除了最后8位)分配给rev_num。如果原始数字为0x01000001,则函数的返回值为0x00000080。根据您的描述,它应该是0x01000080。

© www.soinside.com 2019 - 2024. All rights reserved.