繁体   English   中英

溢出和携带标志

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM