Это относится к домашнему заданию, но это не домашнее задание.
Мне трудно понять, есть ли разница в том, как побитовое не (~
в C) повлияет на signed int
и unsigned int
при компиляции на машине с прямым порядком байтов по сравнению с машиной с прямым порядком байтов.
Являются ли байты действительно "обратными", и если да, то не вызывает ли побитовое "не" (и другие операторы) разные результирующие int
в зависимости от типа машины?
Пока мы занимаемся этим, будет ли ответ одинаковым для каждого из побитовых операторов в C или он сильно зависит?
Я имею в виду следующие операторы:
~ /* bitwise Not */
& /* bitwise And */
| /* bitwise Or */
^ /* bitwise Exclusive-Or */
Заранее спасибо!
Обновление. Читая свои ответы до сих пор, я чувствую себя обязанным спросить, влияет ли побитовый оператор not на знаковый бит в signed int
. Боюсь, я немного запутался в этой части, так как забыл обо всей этой тишине. Адам, кажется, заявляет, что все значения рассматриваются как беззнаковые. Применяется ли знаковый бит повторно или однажды подписанное значение становится беззнаковым?