[英]Overflow and Carry flags
是否可以将两个带符号的8位数字相加并设置进位和溢出位?
根据你的意见,你的问题似乎是“是否有可能同时为两个补码添加设置进位和溢出,涉及有符号数?” 它是。 典型的实现是对链路末端的进位输出最后一个加法器的进位的异或 - 因此,负数的溢出将导致进位位被设置和要设置的溢出位。
这是一个例子,将-1添加到-128:
Carry 10000 0000
1000 0000 (-128)
1111 1111 (-1)
---------
0111 1111 (oops, this is 127!)
进位将被设置,因为最后一次添加导致进位 - 并且溢出将根据上面的规则设置(同样,请注意-128加到-1显然不是127)
您无法访问C中的标志,即使您可以让编译器生成设置它们的代码,您也无法使用它们。
您可以在C中编写自己的添加例程,它将返回已签名的8位操作数的进位和溢出标志。 如果您指的是处理器内部的硬件进位和溢出位,则不能在C中进行移植。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.