Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 6
1

Побитовые НЕ

26.02.2018, 23:33. Показов 560. Ответов 2
Метки нет (Все метки)

Привет, ребят.
Возможно дико туплю, но не могу понять одного момента.
Каким образом побитовое НЕ превращает беззнаковый тип в знаковый?????????

Например:
C#
1
2
int a=~1;
Console.WriteLine(a);
Выведет: -2

Каааааак??? Я ожидал получить ошибку компиляции, типа "Че ты присваиваешь отрицательное число в int? Хочешь юзать отрицательные числа, юзай uint". Но никаких ошибок. Все прекрасно компилируется и выводится -2.

Т.е. имеем единицу в двоичном виде 0000 0001. Применяем к ней логическое отрицание и получаем 1111 1110 и это в десятичной системе для беззнаковых чисел равно 254. Предположил, что побитовое отрицание как-то конвертирует тип и первый бит интерпретируется как указатель знака, т.е. 0-положительное, 1-отрицательное, но в таком случае должно получиться -128.
Откуда, мать её, -2 то получается?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2018, 23:33
Ответы с готовыми решениями:

Побитовые операции
Для двух символов реализовать операцию «И» два правых байт, получив таким образом значение для...

Побитовые операции
Нужна помощь. впервые встречаюсь с побитовыми операциями. задания для меня, как минимум, непонятны....

побитовые операторы
int a = 9 & 2; Console.WriteLine(a); почему в этом случае выдаст 0? 9 в 2-ой системе 1001 2...

Побитовые сдвиги
Где применяются побитовые сдвиги и зачем? Вроде не ассемблер учу а тут такое :О

2
Модератор
Эксперт .NET
5807 / 4684 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
26.02.2018, 23:43 2
valeri-dexter,
с каких пор int стал беззнаковым?
0
0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 6
26.02.2018, 23:59  [ТС] 3
Прошу прощения. Максимально дико затупил. Прошу модератора удалить тему.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2018, 23:59

Побитовые операции - сдвиг
Вот код. Объясните пожалуйста,почему так ведёт себя последний цикл. Как-то он странно сдвигает. ...

Логические побитовые операции
Привет изучаю как работают логические операции а именно (XOR) Вот написал програмку которая...

Побитовые операции с double
Нашел на msdn Почему так? А если мне надо побитово что-то с ним сделать? BitConverter'ом...

Побитовые операции с целыми числами
Есть две переменные a и b. Обе задаются значениями в диапазоне включительно. Возможно ли какими...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.