首页 > 其他 > 详细

把一个无符号16bit的数像镜面反射一样颠倒一下

时间:2019-02-14 20:30:13      阅读:178      评论:0      收藏:0      [点我收藏+]

下面这个函数是把一个无符号16bit的数像镜面反射一样颠倒一下。

该函数是NXP(飞思卡尔)的 S32DS IDE中提供的SDK中的一个官方代码:

 1 static inline uint16_t REV_BIT_16(uint16_t value)
 2 {
 3     uint8_t i;
 4     uint16_t ret = 0U;
 5 
 6     for (i = 0U; i < 8U; i++)
 7     {
 8         ret |= (uint16_t)((((value >> i) & 1U) << (15U - i)) | (((value << i) & 0x8000U) >> (15U - i)));
 9     }
10 
11     return ret;
12 }

使用S32DS创建普通的C语言的工程。选择CDT Internal Builer(否者编译会错误)。
某数:
?0b0001001000110100?
将该数颠倒以后:
?0b0010110001001000?

把一个无符号16bit的数像镜面反射一样颠倒一下

原文:https://www.cnblogs.com/praiseslow/p/10380507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!