【发布时间】:2016-06-15 17:37:52
【问题描述】:
我有一个变量:
ushort statusRegister;
此变量通过设置或清除其各个位来跟踪各种计算的结果。位定义为:
- Bit0 = 进位
- Bit1 = 溢出
- Bit2 = 零
- Bit3 = 符号
- Bit4 = IRQ
- Bit5 = 辅助进位
- Bit6 = 1 未使用
- Bit7=1 未使用
鉴于以下情况:
Ushort varA = 0x8B;
Ushort varb = 0x24;
Ushort result = varA + varB;
如何根据计算结果设置或清除这些单独的位?我不知道如何确定计算是否导致了位进位或半进位,或者是否发生了溢出。
感谢您的建议
【问题讨论】:
-
C# 不会公开原始信息,例如是否有进位。如果你想知道在你得到结果后你将不得不做一些额外的数学运算来确定进位是否发生。没有发布作为答案,因为我不知道数学是什么。
标签: c# bit-manipulation bit