Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нарыл вот такую штуку : побитовая маска
Вроде вот при таком подходе - получается
Код: Выделить весь код
byte b = (byte)(0xFFAA & 0x00FF);
Т.е. насколько я понимаю, он выбирает значимые разряды числа 0xFFAA по маске 0x00FF, или же
Код: Выделить весь код
0000 0000 1111 1111 (маска)
xxxx xxxx |||| ||||
1111 1111 1010 1010 (число)
=
0000 0000 1010 1010 (результат)
Однако второй нюанс вопроса, хотелось бы узнать - почему при побитовом сдвиге, происходит ситуация описанная в первом посте, и как именно она так происходит?
Есть конечно предположения, что при сдвиге влево, выделяется еще 2 байта (до int32 unsigned) и после приводятся (ushort).
Однако, хотел бы услышать мнение хорошего человека знающего c#

Цитата:
В С/С++ это делается при помощи объединения:
Мне нужно одну переменную 2 байта, разложить на 2 (по байту)

Последний раз редактировалось Carmageddon, 05-12-2013 в 16:56.


Отправлено: 16:48, 05-12-2013 | #3