我正在编写一个 Matlab 例程,它可以帮助我模拟一些我最终会用 C++ 编写的代码。一个问题是 Matlab 和 C++ 整数在执行算术运算时的行为不同,导致产生的结果大于容器可以容纳的结果。
例如,在 Matlab 中intmax('uint16')
生成65535
. 并且intmax('uint16')+1
仍然产生65535
。如果你想高于 65535,你不能。Matlab 只是对其进行了限制。
C++ 是不同的。写入unsigned short x = 65535; cout << ++x;
产生0
是因为它完全执行加法并且简单地保留 16 个最低有效位。
有没有办法让 Matlab 的行为方式相同?