社区
图形处理/算法
帖子详情
请教按位读取问题
songjinn
2009-06-12 09:40:45
MFC
因为可以做数据类型转换,所以数据类型不限,字符串或整数操作均可。
举个例子:
78 06 D6
转换成二进制后
0111 1000 0000 0110 1101 0110
需要出去前五位,然后读取15位的数据位,
即:
01111去掉
读取
000 0000 0110 1101
希望大家知道的帮忙想想方法。
...全文
153
9
打赏
收藏
请教按位读取问题
MFC 因为可以做数据类型转换,所以数据类型不限,字符串或整数操作均可。 举个例子: 78 06 D6 转换成二进制后 0111 1000 0000 0110 1101 0110 需要出去前五位,然后读取15位的数据位, 即: 01111去掉 读取 000 0000 0110 1101 希望大家知道的帮忙想想方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
songjinn
2009-06-12
打赏
举报
回复
我觉得都可行,但是不知道该如何实现。
78 00 06 D6 00 00 13 88 00
这些数据翻译成二进制后要统一进行操作。
01111000 00000000 00000110 11010110 00000000 00000000 00010011 10001000 00000000
先除去前五位,然后按照每15位一个数据读取,再转换成10进制整数。
lambochan
2009-06-12
打赏
举报
回复
DWORD a = 0x78, b = 0x06, c = 0xD6;
DWORD dwNum = ( a << 16 ) | ( b << 8 ) | c;
// 去掉前5位(加高8位dummy)并且只留15位
dwNum = ( dwNum << 13 ) >> 17;
leechrockgames
2009-06-12
打赏
举报
回复
a=16;
a<<1; (a=32)
a<<2; (a=64)
a=16;
a>>1; (a=8)
a>>2; (a=4)
fengrx
2009-06-12
打赏
举报
回复
[Quote=引用 1 楼 liuintermilan 的回复:]
按位与不就行了
& 00000111111111111111
[/Quote]
正确。
liuintermilan
2009-06-12
打赏
举报
回复
按位与不就行了
& 00000111111111111111
songjinn
2009-06-12
打赏
举报
回复
lambochan 谢谢:)
在你的提示下问题解决了:)
跟大家共享下
(0x780006 & 0x07fff0)>>4
这样前五位清0,后四位移除,前边会用0补充。不过要记得用unsigned类型
lambochan
2009-06-12
打赏
举报
回复
[Quote=引用 6 楼 songjinn 的回复:]
引用 4 楼 lambochan 的回复:
DWORD a = 0x78, b = 0x06, c = 0xD6;
DWORD dwNum = ( a < < 16 ) | ( b < < 8 ) | c;
// 去掉前5位(加高8位dummy)并且只留15位
dwNum = ( dwNum < < 13 ) >> 17;
这个为什么要左移16位?0x78不是8位的吗?
[/Quote]
那是因为:
===========================================
78 06 D6
转换成二进制后
0111 1000 0000 0110 1101 0110
需要出去前五位,然后读取15位的数据位,
即:
01111去掉
读取
000 0000 0110 1101
============================================
你每3个Byte去除前5位,读接着的15位,忽略后面的4位
百事烟
2009-06-12
打赏
举报
回复
1楼
up
songjinn
2009-06-12
打赏
举报
回复
[Quote=引用 4 楼 lambochan 的回复:]
DWORD a = 0x78, b = 0x06, c = 0xD6;
DWORD dwNum = ( a < < 16 ) | ( b < < 8 ) | c;
// 去掉前5位(加高8位dummy)并且只留15位
dwNum = ( dwNum < < 13 ) >> 17;
[/Quote]
这个为什么要左移16位?0x78不是8位的吗?
32位程序在64位系统上
读取
注册表失败的
问题
解决
目录1. 环境2. 目的3. 方法4. 现象和原因5. 有效的解决办法5.1 使用64位程序5.2 简单有效的方法 1. 环境 Windows10 专业版 x64 Qt5.15.2 MSVC2019 32bit 2. 目的
读取
卸载列表,如下: 3. 方法 使用QSettings
读取
注册表项: SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall 枚举所有子项的DisplayName: 4. 现象和原因 确实获取到了一部分列表,但是我想要找
windows 32位 64位 DLL 文件
读取
问题
有时候人们怀疑一个系统的底层结构能否保证这个系统在被使用时达到安全而高效,64位版本的Windows在这方面就比较完美。Windows XP和Windows Server 2003都是运行64位硬件的64位版本操作系统。64位Windows操作系统运行64位代码,同时通过使用WoW64(Windows on Windows 64)也能运行32位代码。 你看,这
matlab
读取
串口 64位浮点型,【分享】关于MODBUS DOUBLE型数据
读取
问题
(64位浮点数)...
前段时间有个项目,要
读取
流量计的总流量,走的MODBUS RTU通讯,200PLC,流量计是厂家指定好的。因为MODBUS做的多了,心想没什么难度,且仪表还没采购,就先把程序做好了。等仪表到了之后傻眼了,总流量是DOUBLE型的浮点数,PLC只支持32位呀。于是网上各种找,也找到了一些资料,同是也看到了很多网友也有这方面的
问题
,于是自已写了一段程序(用300写的,方便模拟)。32位浮点数和64位浮...
java
读取
excel 数点后面多出很多位_Java
读取
excel小数点的
问题
使用Java
读取
excel的时候,小数自动转为为不精确的小数点了。
读取
excel的代码public static List readExcel(File file) throws Exception {//初始化结果集List dataList = new ArrayList();//获得Workbook工作薄对象Workbook workbook = getWorkBook(file);if (...
图形处理/算法
19,464
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章