在当前和年龄的大多数实现中,符号位的位模式为1且值位为0的有符号整数值往往表示该有符号整数类型的最低可能值。
但是,如6.2.6.2p2所述,这不是一项要求:
这些适用中的哪一个是实现定义的,就像符号位1和所有值位零(前两个),或符号位和所有值位1(对于补码)一样,是否为陷阱表示或正常值。
我的第一个问题很简单:是否有任何实现将此位模式用于负零或陷阱表示? 如果这个问题的答案是’不’,那么我后续问题的答案也必须是’不’。
继该问题之后, 6.2.6.2p3指出当为对象分配负零时,它可能(或可能不)转换为常规零:
未指定这些情况是否实际产生负零或正常零,以及当存储在对象中时负零是否变为正常零。
我的后续问题:
编辑澄清:我不是要求在一个系统中理论上可行的是什么,该系统使用补码,二进制补码或有符号整数的符号和幅度表示。 我可以在本问题前面引用的章节中找到(并且已经找到)这些信息。 我问的是实际做了什么 。
正如Iskar Jarak在评论中引起我注意的那样,最近于2015年2月发布的OS2200有一个名为UCS C的C实现 ,其中包含手册文档
综上所述, …
是否存在将此位模式用于负零或陷阱表示的任何实现?
是。 提供的示例可以将此位模式用于负零或陷阱表示,具体取决于编译器一致性选项。
对于后续问题1和2,OS2200上的UCS C就是这两个问题的一个例子。
至于问题3,有一天要回答……我的时间已到此结束:)
需要了解更多c/c++开发分享是否存在支持负零的任何实现,或将其保留为陷阱表示?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享是否存在支持负零的任何实现,或将其保留为陷阱表示?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979330.html