2013-10-03 2 views

ответ

18

В соответствии с the docs:

^х побитовое дополнение м^х с т = "все биты устанавливаются в 1" для

без знака х и т = -1 для подписанных х

Это означает, что ^0 - это то же самое, что и ~0 в других основных языках.

В two's complement (который используется большинством языков программирования) значение дополнения к нулю равно -1 (по типу подписанного типа). Так что это способ написать:

newStat := stat{min: -1} 
+0

Эй, спасибо за ответ. Я начинаю новичок, и я до сих пор не знаю, что это значит. Что такое ~ 0? Что такое поразрядное дополнение? Не могли бы вы прояснить? Спасибо заранее! – samol

+3

Побитовое дополнение принимает каждый бит из типа данных и инвертирует его. Например, 0 в 4-битовом двоичном формате равно 0000, его поразрядное дополнение равно 1111. Точно так же, как 10 в 4-битовом двоичном формате составляет 1010, а его дополнение - 0101. –

+1

Для дополнительной справки читайте [побитовые операции] (http://en.wikipedia.org/wiki/Bitwise_operation) в целом. – justinas

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