Понижение unsigned long в метод, который требует int в C ++ в Xcode

Я пытаюсь передать переменную в метод, который принимает аргумент int. Моя переменная, однако, является беззнаковым длинным. Код выглядит примерно так:

unsigned long uLongNum = veryBigNumber;
int x = smallInteger; // usually between two and eight
myObject->myMethod(int y);

То, что я передаю (много раз), выглядит так:

myMethod(uLongNum / (ULongMax / x));

Цель состоит в том, чтобы разделить большой массив больших целых чисел на два новых массива в зависимости от размера числа. Мой код генерирует только нули, а не нули и нули в myObject (я могу сгенерировать единицы с помощью этого кода в VS2012).

Примечание: я задавал похожий вопрос пару дней назад, но мой вопрос был немного двусмысленным. Я надеюсь, что это проясняет двусмысленность. Благодарю.

1

Решение

unsigned long uLongNum = veryBigNumber;
int x = smallInteger; // usually between two and eight
void myMethod(int y);

И из вашего комментария:

… Я задаюсь вопросом, как опустить это долго в аргументе int.

Возможно что-то вроде:

unsigned long uLongNum = veryBigNumber;
if(uLongNum > std::numeric_limits<int>::max())
throw std::out_of_range();

int x = static_cast<int>(veryBigNumber);
myMethod(x);
...
2

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector