与C++ "simple"符号和符号的计算混淆
Confused with C++ "simple" calculation with sign &
我正在看一个c++源代码,其中有什么看起来是一个简单的计算。然而,由于不了解c++,我不能完全理解它是如何计算的(我的目标是在Excel下进行相同的计算)。
uint64_t fpo = (((ui>>32) << 24) | (ui & 0xffffff)) + 0x123e00;
PrintAndLog("ui result : %lld [0x%llX]", ui, ui);
在我的例子中,ui是0x0F007057B9结果是0xF8295B9
如果我用windows计算器,我做(在十六进制模式下)
(0x0F007057B9 AND 0xffffff) + 0x123e00
我得到相同的结果(除了第一个0xF)
我在某个地方读到,如果相同"权重"的两个位都是1,则AND返回1如果我将ui AND 0xffffff转换成Binary:
0x0F007057B9 0000111100000000011100000101011110111001
0xffffff 111111111111111111111111
-------------------------------------------------------
0000111100000000011100000101011110111001
做任何改变…
我完全走错路了吗?对不起,我的英语很差,我来自韩国。谢谢你的帮助{^^;
For AND its
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
所以如果你用0xffffff和一个数字,你基本上只是保持数字在这些位置。你用0来填补缺失的部分
在你的例子中:
0x0F007057B9 0000111100000000011100000101011110111001
0xffffff 0000000000000000111111111111111111111111
-------------------------------------------------------
0000000000000000011100000101011110111001
我不确定,如果这是你的问题的话:)
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 计算 (64 位无符号整数) * (64 位无符号整数) 的商除以 2^64
- 大 O 符号计算
- 计算表示有符号整数所需的最小字节数
- 计算C (符号数学)中的Jacobian矩阵
- 如何从通用函数符号计算或指定COFF符号表的"value"?
- 计算 c# 中二进制文件符号的频率不起作用,但适用于等效的 c++ 代码
- 毕达哥拉斯恒等式:如何计算正确的cos符号
- 在 x86-64 平台上为 C(++) 中的 64 位无符号参数计算 (a*b)%n FAST
- 为什么用Eigen和OpenCV计算的SVD左奇异向量具有不同的符号
- 在内存地址中计算 2 补码中的符号位
- 计算无符号字符的长度
- 计算字符串中的元音、辅音、数字和其他符号
- 为什么这种计算整数体系结构符号的方法是特定的?
- 与C++ "simple"符号和符号的计算混淆
- 用不同的符号表重新计算Boost Spirit解析属性的最有效方法是什么?
- 从四个给定的无符号字符数组中计算平均数组