我正在写一个Matlab例程,它可以帮助我模拟我最终将用C ++编写代码的东西。一个问题是Matlab和C ++ ints在执行算术运算时表现不同,导致产生的结果大于容器可以容纳的结果。
例如,在Matlab中intmax('uint16')
生成65535
。并且intmax('uint16')+1
仍会生成65535
。如果你想要高于65535,你不能。 Matlab只是给它上限。
C ++与众不同。写unsigned short x = 65535; cout << ++x;
会产生0
因为它完全执行加法并且只保留16个最低有效位。
有没有办法使Matlab的行为方式相同?