Вы делаете эту ссылку self
сильной, попробуйте в этом
guard let self = self else { return }
Попытайтесь просто использовать self?
и проверьте, есть ли еще утечка памяти, эта статья удивительно объясняет многое, я рекомендую вам взглянуть на это
Люди говорят, что символ не означает сложение. Это верно, но не объясняет, почему символ плюс-как используется для чего-то, что не является сложением.
Ответ таков: для сложения по модулю 1-битных значений 0 + 0 == 1 + 1 = = 0 и 0 + 1 == 1 + 0 == 1. Это те же значения, что и XOR.
Таким образом, плюс в кружке в этом контексте означает «побитовое сложение по модулю-2». Что, как все говорят, XOR для целых чисел. В математике принято использовать плюс в кружке для операции, которая является своего рода сложением, но не является обычным целочисленным сложением.
Это не плюс, а знак для двоичного оператора XOR
a b a XOR b
0 0 0
0 1 1
1 0 1
1 1 0
Это оператор XOR, а не оператор PLUS
XOR работает по битам, без переноса, как PLUS делает
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 0 = 0
0 XOR 1 = 1
Надеюсь, этот макет сработает, перенесите его в двоичное представление с XOR :
66h = 102 decimal = 01100110 binary
FAh = 250 decimal = 11111010 binary
------------------------------------
10011100 binary <------ that's 9Ch/156 decimal
, но вики, на которые я ссылался ранее, при необходимости предоставят вам больше деталей ... вот как они выглядят на скриншоте, который вы предоставили
Это эксклюзив или (XOR). Если я правильно помню, при выполнении побитовой математики точка (.) Означает И, а плюс (+) означает ИЛИ. Круг вокруг плюса означает, что XOR соответствует стилю, используемому для OR.
Символ «плюс» в кружке не обозначает сложение. Это операция XOR.
Я использовал логику в ответах rampion и schnaader. Я подведу итоги, как я подтвердил результаты. Я изменил числа на двоичные, а затем использовал XOR-операцию. Кроме того, вы можете использовать шестнадцатеричные таблицы: Нажмите здесь!