7
Я вижу^0 в базе кода.Что такое^0 в голанге?
Пример:
type stat struct {
...
min int64
...
}
newStat := stat{min: ^0}
Что^0 означает?
Я вижу^0 в базе кода.Что такое^0 в голанге?
Пример:
type stat struct {
...
min int64
...
}
newStat := stat{min: ^0}
Что^0 означает?
В соответствии с the docs:
^х побитовое дополнение м^х с т = "все биты устанавливаются в 1" для
без знака х и т = -1 для подписанных х
Это означает, что ^0
- это то же самое, что и ~0
в других основных языках.
В two's complement (который используется большинством языков программирования) значение дополнения к нулю равно -1 (по типу подписанного типа). Так что это способ написать:
newStat := stat{min: -1}
Эй, спасибо за ответ. Я начинаю новичок, и я до сих пор не знаю, что это значит. Что такое ~ 0? Что такое поразрядное дополнение? Не могли бы вы прояснить? Спасибо заранее! – samol
Побитовое дополнение принимает каждый бит из типа данных и инвертирует его. Например, 0 в 4-битовом двоичном формате равно 0000, его поразрядное дополнение равно 1111. Точно так же, как 10 в 4-битовом двоичном формате составляет 1010, а его дополнение - 0101. –
Для дополнительной справки читайте [побитовые операции] (http://en.wikipedia.org/wiki/Bitwise_operation) в целом. – justinas