gpt4 book ai didi

c - CPU的舍入模式什么时候可以改变?

转载 作者:太空狗 更新时间:2023-10-29 15:30:06 26 4
gpt4 key购买 nike

在很多文章中,他们建议使用 fistp 指令来快速转换 float->integer。这取决于 CPU 当前的舍入模式,因此您必须对其进行设置。

但是这种舍入模式可以在程序运行期间被其他程序改变吗?通过操作系统?

更糟糕的是,这是一种可能的情况(伪代码)吗?

set_rounding_mode(ROUND_TRUNCATE);
/* process gets switched out and other process sets the rounding mode to round */
int x = round_with_fistp(0.6);
printf("%d\n", x); // prints 1

最佳答案

没有任何理智的通用操作系统会在进程和线程之间共享舍入模式。它应该只在线程请求它时更改,并且更改应该仅在该线程本地进行。但是,您可能会遇到一些库(尤其是第 3 方)更改它并且有时(或总是)无法恢复它并迫使您实现变通办法。

关于c - CPU的舍入模式什么时候可以改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10343250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com