2014-01-27 5 views
0

есть ли причина? Я знаю, что есть POW(), но это функция. почему он не имеет^для экспонентов, когда кажется, что очень простая вещь тоже добавляет, что было бы очень удобноПочему у C++ нет оператора экспоненты?

+2

Почему у каждого проблемы с 'pow': P'^'является ** битовым исключением OR ** – P0W

+0

Это' pow'. Поведение военнопленных было бы совсем другой (ну, мы не можем быть просто вещами ...). –

+0

Потому что они не вложили его. Вам нужно будет спросить Бьярне Страуструпа или комитета C++, или Денниса Ричи или комитета С. Все, что вы получите здесь, будет просто более или менее неосведомленным догадкой. – EJP

ответ

-2

На некоторых языках^- знак логической операции. Я считаю, что операция XOR.

Поэтому вы должны использовать POW() в C++.

+2

Итак? Они могут использовать '**', как это делают некоторые языки. – Barmar

+1

Более важным, чем то, что он есть на других языках, является то, что он также побитовый XOR в C/C++. –

+0

Я увидел, что sneaky отредактировал –

0

Операторы C++ моделируются операторами C, которые, в свою очередь, моделируются после общих инструкций машинного кода. Более поздние имеют сложение, вычитание, сдвиг и, или, xor и т. Д.. Они могут иметь умножение и, возможно, даже разделение. Все дескрипторы целых обрабатываются, а иногда и числа с плавающей запятой. Но для экспоненциации было бы крайне редко поддерживать прямую поддержку процессора. Таким образом, это никогда не считалось (и поэтому поэтому не было) встроенным оператором. Сказав все это, есть левый сдвиг <<, который выражает степень 2.

+0

Это не «крайне редко». Наиболее часто используемое семейство процессоров имеет такую ​​инструкцию десятилетиями. Я использовал его на PDP-11 в 1970-х годах, что и было построено на C. – EJP

Смежные вопросы