Я пытаюсь понять, как «подписанное целое число» и «арифметический сдвиг влево» работает в swift и iOS.подписанное целое число, арифметический сдвиг влево
В книге, быстрый язык программирования 3.0, он говорит
Я попробовал его с помощью следующего кода:
Я понимаю, с знаковым целым числом, двоичное представление от -120 равно 10001000, поэтому сдвиг одного места влево приведет к 00010000, что равно 16 (как показано в коде). Но 16 не удваивается от -120
неверное заявление, верно? или что-то мне не хватает?
Все это зависит от того, какой тип целого вы используете. Попробуйте изменить 'negative120' на Swift Integer вместо' Int8', например 'let negative120: Int = -120', и вы заметите, что значение удваивается. – Pierce