社区
图形处理/算法
帖子详情
请教按位读取问题
songjinn
2009-06-12 09:40:45
MFC
因为可以做数据类型转换,所以数据类型不限,字符串或整数操作均可。
举个例子:
78 06 D6
转换成二进制后
0111 1000 0000 0110 1101 0110
需要出去前五位,然后读取15位的数据位,
即:
01111去掉
读取
000 0000 0110 1101
希望大家知道的帮忙想想方法。
...全文
150
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位系统上
读取
注册表失败的
问题
解决
博客讲述了在Windows 10 x64环境下,32位程序无法直接
读取
64位注册表路径的
问题
。作者发现系统将32位程序的注册表路径重定向到了WOW6432Node,但尝试禁用重定向无效。解决方案包括:1) 使用64位程序直接
读取
;2) 创建32位和64位的独立exe,根据系统类型调用来
读取
。此外,还介绍了一种使用Win32API的简单方法,通过RegOpenKeyExA和特定标志
读取
注册表项。
windows 32位 64位 DLL 文件
读取
问题
64位Windows系统通过WoW64运行32位代码,但32位和64位DLL文件隔离。32位DLL位于/Windows/SysWOW64,64位DLL在/Windows/System32。WOW64 emulator使32位应用认为运行在32位系统,避免混淆。管理员需要注意32位DLL的正确存放位置。
matlab
读取
串口 64位浮点型,【分享】关于MODBUS DOUBLE型数据
读取
问题
(64位浮点数)...
本文介绍了如何使用MATLAB处理MODBUS RTU通讯中遇到的64位浮点型数据
读取
问题
,通过解析32位和64位浮点数的结构,提供了一段转换程序,将接收到的数据转换为实际的浮点数值。
java
读取
excel 数点后面多出很多位_Java
读取
excel小数点的
问题
在使用Java
读取
Excel时遇到小数点后数值不精确的
问题
,
读取
到的数据比原始文件中多出很多位。通过检查代码发现,
读取
单元格时将其设置为了CELL_TYPE_STRING类型。解决此
问题
可能需要调整
读取
方式,确保保留小数的精度,例如使用DataFormat和cell.getNumericCellValue()来正确
读取
数值类型单元格。
python
读取
某进程内存数据,python中的ReadProcessMemory出现
问题
,无法
读取
64位进程内存...
本文介绍了使用Python
读取
64位进程内存时遇到的错误998(ERROR_NOACCESS),并提供了针对高地址
读取
失败
问题
的解决方法。通过调整参数类型,成功解决了在
读取
特定地址时出现的
问题
。
图形处理/算法
19,464
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章