printf打印short字节_碟式交换:C语言代码实现字节的高低位互换

fd4646858726826a2489c4b9e0f2dcf0.png

问题

对一个字节数据,逐个交换其高低位,例如 11010001 ,经过0-7,1-6,2-5,3-4对应位的交换,变成 10001011  。

解决思路

对于该问题,我们最先想到的是对原字节通过移位操作来逐位处理,使用另一个变量来存储交换后的结果。这种解决方案处理起来思路清晰,编写代码应该不难。 下面是该思路对应的代码:
 1unsigned char shift_fun1(unsigned char data)   2{   3    unsigned char i;   4    unsigned char tmp=0x00;   5 6    for(i=0;i<8;i++)   7    {   8        tmp=((data>>i)&0x01)|tmp;   9        if(i<7)  10            tmp=tmp<<1;  11    }  1213    printf("  after shift fun1 data=%x \n",tmp);  1415    re
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值