@LamerFromSpace
Студент-быдлокодер

Опечатка в книге?

Читаю в книге "Язык программирования Go":
сдвиг вправо знаковых чисел заполняет освобождаемые биты копиями знакового бита.

Нашёл этот же фрагмент в оригинале (страница 54):
right shifts of signed numbers fill the vacated bits with copies of the sign bit


На деле же освобождаемые биты забиваются нулями, даже если знаковый бит равен 1: https://play.golang.org/p/8NYMGJ16prw

Единственное отличие - при сдвиге более чем на 8 бит отрицательное знаковое число всегда равно -1, тогда как положительное равно 0.

Может я что-то не так понял?
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
@falconandy
Вас вводит в заблуждение %b - для отрицательных чисел отбражается не "настоящее" двоичное представление (вместо 11111111 выводится -1).
https://stackoverflow.com/questions/49573389/forma...
https://stackoverflow.com/questions/37582550/golan...
Конечно же -1 это 11111111 для int8, но чтобы получить такой вывод для %b, надо сконвертировать явно в uint8.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 15:52
3000 руб./за проект
25 нояб. 2024, в 15:43
1500 руб./за проект