社区
C语言
帖子详情
如何把一个字节的位倒置
aaaaatiger
2006-08-24 09:57:58
如:11100001 倒置为10000111
用最快最高效的方法.
我想过用位操作:就是用—操作看每一位看是不是1。
那位高手还有更快的方法呢?
...全文
694
19
打赏
收藏
如何把一个字节的位倒置
如:11100001 倒置为10000111 用最快最高效的方法. 我想过用位操作:就是用—操作看每一位看是不是1。 那位高手还有更快的方法呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大耳
2006-08-25
打赏
举报
回复
查表把,如果256的表觉得太大,就用16的把,
同样分成4段组装一下就好了
Jim_King_2000
2006-08-25
打赏
举报
回复
用汇编吧。可以把x左移进C标志,再带C标志右移进y。循环8次就OK。当然,当计算机字长不够时,就很头疼了。
bohlee
2006-08-25
打赏
举报
回复
mark
tailzhou
2006-08-25
打赏
举报
回复
哎;
bit[c&0xff]<<8 && bit[c>>8]
==>
bit[c&0xff]<<8 | bit[c>>8]
fan0316
2006-08-25
打赏
举报
回复
bit[c&0xff]<<8 | bit[c>>8]
以上不解,各位大人能否写个例子see see。
Arthur_
2006-08-24
打赏
举报
回复
大錯了不好意思
unsigned char aim=0x00;
unsigned char target=0x30&0xff;
現在把target倒置;
int i;
for(i=0;i<8;i++);
{
aim+=( (target>>(7-i) )&0x01 )<<i;
}
Arthur_
2006-08-24
打赏
举报
回复
unsigned char i=0x00;
unsigned char target=0x30&0xff;
現在把target倒置;
int i;
for(i=0;i<8;i++);
{
i+=( (target>>(7-i) )&0x01 )<<i;
}
crazy_lazy_pig
2006-08-24
打赏
举报
回复
用位域如何?
aaaaatiger
2006-08-24
打赏
举报
回复
谢谢大家.由于要放进单片机去,内存比较小
BitReverse在时间上觉得比较浪费.
bit[c&0xff]<<8 && bit[c>>8]时间和内存都比较小.有没有更完美点的呢?哈哈.
tailzhou
2006-08-24
打赏
举报
回复
bit[256] 也仅仅占用了256个字节的空间;
应该是可以接受的吧?
Heaven_Redsky
2006-08-24
打赏
举报
回复
i = ~i;
i = i & 255;
这样可以不:)
dead_of_winter
2006-08-24
打赏
举报
回复
的确查表是最好的办法,内存应该没多少吧?
tailzhou
2006-08-24
打赏
举报
回复
只要位数是8的倍数,都可以用同样的影射表,再经过少数几次位操作来实现;
tailzhou
2006-08-24
打赏
举报
回复
还是查表;
映射表也是一模一样的;
处理变化一下;
int16 c;
bit[c&0xff]<<8 && bit[c>>8]
crazy_lazy_pig
2006-08-24
打赏
举报
回复
int BitReverse(int src, int size)
{
int tmp = src;
int des = 0;
for (int i=size-1; i>=0; i--)
{
des = ((tmp & 0x1) << i) | des;
tmp = tmp >> 1;
}
return des;
}
网上抄来的,没调试过。楼主可以查查快速傅立叶变换算法的相关文章。
aaaaatiger
2006-08-24
打赏
举报
回复
我希望能省点内存,并且速度要最快.请教16位的倒置.
aaaaatiger
2006-08-24
打赏
举报
回复
那个是8位的.如果是16位就不好办了.
aaaaatiger
2006-08-24
打赏
举报
回复
果然够快.厉害.能不能用位操作呢?
tailzhou
2006-08-24
打赏
举报
回复
最快的就是查表了;
做一个映射表:
bit[256];
下标对应于字节的值,元素对应于倒置后的值
汉字字模点阵数据批量生成工具_suki_v5.0破解版
支持
字节
按
位
倒置
支持 汉语拼音自动命名C语言数组格式 支持 汉语拼音自动命名汇编语言标号DB表格式 支持 自动编号数组命名及自动编号汇编DB表命名方式 支持 图片Logo点阵数据生成 支持 二进制数据字库DAT和BIN ...
java源码包---java 源码 大量 实例
5个目标文件,演示Address EJB的实现,创建
一个
EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回
一个
经过初始化的上下文,用client的getHome()函数调用Home接口...
点阵字模生成原理与方法+点阵取模软件
汉字字模点阵数据批量生成工具支持Windows汉字字体设置支持 汉字大小调整 支持 汉字
位
置调整 支持 单个汉字字模...4-32bit多种数据长度分组选择支持 字模数据取反支持
字节
按
位
倒置
支持 汉语拼音自动命名C语言数组格式
java源码包2
5个目标文件,演示Address EJB的实现,创建
一个
EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回
一个
经过初始化的上下文,用client的getHome()函数调用Home接口...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章