7 741025 Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #1 定义两个byte:a=50, b=100, a-b=206谁能告诉我为什么?
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #2 你想要什么结果呢?Byte型可以这样计算吗?
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #4 我估计是这样的:Byte的范围是0~255,即256个数,你的运算为负数,所以Delphi自动把结果加上了256,这是一种转换吧,应为Byte不允许有负数
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #5 所以如果2个byte型的变量,如果它们的差为负数,则实际结果将为256+Result如LZ的情况:实际结果就是256+(-50)=206;个人浅见,希望大家斧正。
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #6 在深入一下,如果2个Byte的和大于256,则实际结果也会被减去256如用200+100,实际结果应该是44
S szhcracker Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #9 我觉得这就是一种校验,Byte型的范围是0~255,那么无论是定义还是计算都必须在这个范围里,超出范围,要么报错(比如你定义 a := 895,我没试过),要么D自动处理
S Supermay Unregistered / Unconfirmed GUEST, unregistred user! 2009-01-21 #10 50-100=-50-50的补码对于byte型来说就是206