精易论坛

标题: 易语言 位或 问题 [打印本页]

作者: 若相守卟离    时间: 2025-6-20 10:47
标题: 易语言 位或 问题

导入数据后  如何判定 这些数据是否已经 位或 过的数据  比如 位或25  如何判定数据已经位或 过 25



作者: 7ian    时间: 2025-6-20 10:47
位或过25的数值特征:
数值 位或 25=数值
数值 位与 25=1

补充内容 (2025-6-20 17:50):
不是1,是25
作者: 花辞    时间: 2025-6-20 11:55
  
子程序名返回值类型公开备 注
判断是否位或过25逻辑型 
参数名类 型参考可空数组备 注
数据整数型
变量名类 型静态数组备 注
原始可能值整数型 
' 原理:如果数据已经位或过25,那么 (数据 AND (NOT 25)) 位或25 应该等于原数据
返回 (位或 (位与 (数据, 位取反 (25)), 25) = 数据)
  
子程序名返回值类型公开备 注
判断是否位或过25逻辑型 
参数名类 型参考可空数组备 注
数据整数型
' 25的二进制是00011001,所以任何位或过25的数,第0、3、4位至少有一个是1
返回 (位与 (数据, 25) ≠ 0)
  
子程序名返回值类型公开备 注
判断是否位或过25逻辑型 
参数名类 型参考可空数组备 注
数据整数型
变量名类 型静态数组备 注
可能原始值整数型 
' 通过移除25的位来尝试还原原始值
可能原始值 = 位与 (数据, 位取反 (25))
返回 (位或 (可能原始值, 25) = 数据)
  
子程序名返回值类型公开备 注
_启动子程序整数型 
变量名类 型静态数组备 注
测试数据整数型 
测试数据 = 123
输出调试文本 ("数据", 测试数据, "是否位或过25:", 判断是否位或过25 (测试数据))
测试数据 = 位或 (100, 25)  ' 100 OR 25 = 125
输出调试文本 ("数据", 测试数据, "是否位或过25:", 判断是否位或过25 (测试数据))
返回 0


作者: 熬夜    时间: 2025-6-20 15:18
对比运算前后的数据二进制位。若结果数据的每一位只要有一个操作数对应的位为 1,结果位就为 1,那么可能是进行了位或运算。
作者: dnxl    时间: 2025-6-20 15:23
比如
90 or 25= 91 (位或)
91 and 25 = 25 (位与)





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4