он работал для меня на 000webhost, выполнив следующие действия:
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: ". $from. "\r\n";
$headers .= "Reply-To: ". $from. "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$headers .= "X-Priority: 1" . "\r\n";
Введите адрес электронной почты при отправке электронной почты
mail('email@gmail.com', $subject, $message, $headers)
Используйте ''
, а не ""
Этот код работает, но письмо было получено с задержкой в полчаса
Как уже было сказано другим ответом (ответами), это «исключительный или» (XOR) оператор . Для получения дополнительной информации о битовых операторах в Java см.: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html
Ссылка AraK указывает на определение исключительного или, что объясняет, как эта функция работает для двух логических значений.
Недостающая часть информации заключается в том, как это относится к двум целым числам (или значениям целочисленного типа ). Побитовое исключение - или применяется к парам соответствующих двоичных цифр в двух числах, а результаты повторно собраны в целочисленный результат.
Чтобы использовать ваш пример:
Простым способом определения побитового XOR является утверждение, что результат имеет 1 в каждое место, где два входных числа отличаются.
С 4 и 5 единственное различие находится на последнем месте; поэтому
0101 ^ 0100 = 0001 (5 ^ 4 = 1).
Побитовое XOR, Java не имеет оператора экспоненции, вам придется использовать Math.pow()
вместо этого.
Это побитовый оператор xor в java, который приводит к 1 для разного значения (т. е. 1 ^ 0 = 1) и 0 для одного значения (т. е. 0 ^ 0 = 0).
Это потому, что вы используете оператор xor.
В java или практически любом другом языке ^ побитообразно xor, поэтому, конечно,
10 ^ 1 = 11. больше информации о побитовых операторах
Интересно, как Java и C # не имеют оператора мощности.
вместо этого используйте Math.pow:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html#pow%28double ,% 20double% 29
Как уже отмечалось многими, это оператор XOR . Многие люди также уже указали, что если вы хотите повысить степень экспансии, вам нужно использовать Math.pow .
Но я думаю, что также полезно отметить, что ^
- это всего лишь один семейства операторов, которые все вместе известны как побитовые операторы:
Operator Name Example Result Description
a & b and 3 & 5 1 1 if both bits are 1.
a | b or 3 | 5 7 1 if either bit is 1.
a ^ b xor 3 ^ 5 6 1 if both bits are different.
~a not ~3 -4 Inverts the bits.
n << p left shift 3 << 2 12 Shifts the bits of n left p positions. Zero bits are shifted into the low-order positions.
n >> p right shift 5 >> 2 1 Shifts the bits of n right p positions. If n is a 2's complement signed number, the sign bit is shifted into the high-order positions.
n >>> p right shift -4 >>> 28 15 Shifts the bits of n right p positions. Zeros are shifted into the high-order positions.
Из здесь .
Эти операторы могут пригодиться, когда вам нужно читать и записывать в целые числа, где отдельные биты должны интерпретироваться как флаги, или когда определенный диапазон бит в целочисленном значении имеет особое значение, и вы хотите извлечь только те из них. Вы можете делать много ежедневных программ, не требуя при этом использования этих операторов, но если вам когда-либо придется работать с данными на уровне бит, то хорошее знание этих операторов неоценимо.
^ двоичный (как в base-2) xor, а не возведение в степень (которое недоступно в качестве Java-оператора). Для экспоненциальности см. Java.lang.Math.pow ().
На других языках, таких как Python, вы можете сделать 10 ** 2 = 100, попробуйте.
Это побитовый оператор xor в java, который приводит к 1 для разного значения бит (т. е. 1 ^ 0 = 1) и 0 для одного значения бита (т. е. 0 ^ 0 = 0), когда число записывается в двоичной форме .
ex: -
Чтобы использовать ваш пример:
Бинарное представление 5 равно 0101. Бинарное представление 4 равно 0100.
Простым способом определения Побитового XOR является утверждение, что результат имеет 1 в каждом месте, где два входных числа отличаются.
0101 ^ 0100 = 0001 (5 ^ 4 = 1).
^
в Java является оператором исключительного или («xor»).
Возьмем 5^6
в качестве примера:
(decimal) (binary)
5 = 101
6 = 110
------------------ xor
3 = 011
Это таблица истинности побитового ( JLS 15.22.1 ) и логического ( JLS 15.22.2 ) xor:
^ | 0 1 ^ | F T
--+----- --+-----
0 | 0 1 F | F T
1 | 1 0 T | T F
Более просто, вы можете также думать о xor как «это или , но не оба !».
Что касается целочисленного возведения в степень, к сожалению, Java не имеет такого оператора. Вы можете использовать double Math.pow(double, double)
(при необходимости приведя результат к int
).
Вы также можете использовать традиционный трюк для смещения бит для вычисления нескольких степеней по два. То есть (1L << k)
равно двум k -й степени для k=0..63
.
Объединить примечание : этот ответ был объединен с другим вопросом, в котором было намерение использовать экспоненциальность для преобразования string
blockquote>"8675309"
-int
, не используяInteger.parseInt
в качестве упражнения программирования (^
теперь означает возведение в степень). Целью OP было вычислить8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0 = 8675309
; в следующей части этого ответа указывается, что для этой задачи не требуется возведение в степень.Схема Хорнера
. При обращении к вашему конкретному нужно, не нужно вычислять различные степени 10. Вы можете использовать так называемую схему Хорнера , которая не только проста, но и эффективна.
Поскольку вы делаете это как личное упражнение, я не буду давать Java-код, но вот основная идея:
8675309 = 8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0 = (((((8*10 + 6)*10 + 7)*10 + 5)*10 + 3)*10 + 0)*10 + 9
Сначала это может выглядеть сложным, но на самом деле это не так. Вы в основном читаете цифры слева направо, и вы умножаете свой результат на 10 до добавления следующей цифры.
В виде таблицы:
step result digit result*10+digit 1 init=0 8 8 2 8 6 86 3 86 7 867 4 867 5 8675 5 8675 3 86753 6 86753 0 867530 7 867530 9 8675309=final
Как говорили другие, это побитовое XOR. Если вы хотите поднять число до заданной мощности, используйте Math.pow(a , b)
, где a
- число, а b
- мощность.
Правило оператора XOR =>
0 ^ 0 = 0
1 ^ 1 = 0
0 ^ 1 = 1
1 ^ 0 = 1
Двоичное представление 4, 5 и 6:
4 = 1 0 0
5 = 1 0 1
6 = 1 1 0
теперь выполняет операцию XOR на 5 и 4:
5 ^ 4 => 1 0 1 (5)
1 0 0 (4)
----------
0 0 1 => 1
Аналогично,
5 ^ 5 => 1 0 1 (5)
1 0 1 (5)
------------
0 0 0 => (0)
5 ^ 6 => 1 0 1 (5)
1 1 0 (6)
-----------
0 1 1 => 3
Многие многие уже объяснили, что это такое и как его можно использовать, но помимо очевидного вы можете использовать этот оператор для выполнения многих трюков программирования, таких как
Много таких трюков можно сделать, используя бит-мудрые операторы, интересную тему для изучения.
Это оператор XOR. Это используется для выполнения операций с битами по номерам. Он имеет такое поведение, что, когда вы выполняете операцию xor на одних и тех же битах, скажите 0 XOR 0/1 XOR 1, результат равен 0. Но если какой-либо из бит отличается от результата, тогда результат равен 1. Итак, когда вы сделали 5 ^ 3, тогда вы могут смотреть на эти числа 5, 6 в их двоичных формах и, следовательно, выражение становится (101) XOR (110), которое дает результат (011), десятичное представление которого равно 3.