Есть ли способ заставить целые числа Matlab вести себя как целые числа С++?

Возможный дубликат:
Как добиться переполнения целых чисел в MATLAB/Octave?

Я пишу подпрограмму Matlab, которая поможет мне смоделировать то, что я в конечном итоге закодирую на C++. Одна проблема заключается в том, что целые числа Matlab и C++ ведут себя по-разному при выполнении арифметических операций, которые приводят к получению результатов, превышающих размер контейнера.

Например, в Matlab intmax('uint16') производит 65535. И intmax('uint16')+1 по-прежнему производит 65535. Если вы хотите подняться выше 65535, вы не можете. Matlab просто надевает на него шапку.

С++ отличается. Запись unsigned short x = 65535; cout << ++x; дает 0, потому что сложение выполняется полностью и просто сохраняются 16 младших значащих битов.

Есть ли способ заставить Matlab вести себя так же?


person Phonon    schedule 10.06.2011    source источник
comment
Взгляните на: stackoverflow.com/questions/2425251/ . Мне нравится метод функции перегрузки.   -  person Eugene K    schedule 10.06.2011