网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月05日漏签0天
vb吧 关注:156,133贴子:1,166,134
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 11回复贴,共1页
<<返回vb吧
>0< 加载中...

快速大小端数据互换怎么实现?

  • 只看楼主
  • 收藏

  • 回复
  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
x86处理数据默认是以小端序的方式来处理的,但是某些特殊的情况......比如说以特定方式预处理过的数据是大端序,或者需要以大端序的方式来处理数据,此时就需要大小端互换(虽然很少遇到),那么用什么样的方式来实现大小端互换速度能更快?
//速度有一定要求


  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
目前采用的方式是利用左右逻辑位移来实现
'令k为输入值,r为输出值
A=SHR(k,24)
B=SHR(k,8) And &HFF00&
C=SHL(k,8) And &HFF0000
D=SHL(k,24)
r=A Or B Or C Or D


2025-06-05 18:33:49
广告
  • 余思培
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
尝试使用过内联汇编,但总是报错
//单独测试没有问题,循环体内使用报错
,目前猜测应该是VB6的优化对内联汇编的函数的无效优化(VB从设计上讲是内存相对安全的语言,他的代码优化是不考虑使用者用API内联汇编的这种骚操作的)
汇编代码如下:
mov ecx,[esp+4]
mov ah,[ecx]
mov al,[ecx+1]
shl eax,10h
mov ah,[ecx+2]
mov al,[ecx+3]
ret 8


  • yjryym
  • 多线程
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
快速字序交换,我几年前就已经实现好了,你可以看看我之前发的贴子:
VB6位运算扩展(实现高效位移和字序交换)【vb吧】_百度贴吧 (baidu.com)
https://tieba.baidu.com/p/6314978742


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示