180 / 178 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
1 | |
Поразрядные операции - в чем суть и применение?18.10.2013, 22:18. Просмотров 1876. Ответов 14
Метки нет Все метки)
(
Добрый вечер. Объясните, в каких задачах они могут понадобиться и как ими пользоваться. А конкретно &, |, ^, сдвиги и т.д.
*в интернете искал, но мне нужно объяснение знающего человека, у которого если что я могу до спросить
0
|
|
18.10.2013, 22:18 | |
Поразрядные операции - в чем суть и применение? Поразрядные операторы - их суть и назначение поразрядные операции Поразрядные операции
__________________
14
Помогаю в написании курсовых работ и дипломов здесь. |
|
Каратель
![]() |
|
18.10.2013, 22:25 | 2 |
Поразрядные операции - в чем суть и применение?
наша песня хороша начинай сначала? кто не учится на своих ошибках
0
|
180 / 178 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
18.10.2013, 22:30 [ТС] | 3 |
Jupiter, вопрос остался открытым
0
|
Каратель
![]() |
|
18.10.2013, 22:41 | 4 |
Ryuk, ну так и подымай ту тему. От того что ты задаешь такие вопросы яснее не станет.
В основном & используется для того что бы узнать значение бита или группы бит, | - для того чтобы установить значение бита или группы бит. Сдвиги используют как умножение на два в степени x << y = x * 2^y или деление x >> y = x / 2^y так же используют для болучения байта(группы байт) из числа (например из одного uitn32_t сделать два uint16_t), и наоборот для группировки байт(группы байт) в число (например из 4-х байт сделать один int). И не надо спрашивать для чего это может понадобится.
0
|
Модератор
![]() 8369 / 6214 / 835
Регистрация: 14.02.2011
Сообщений: 21,582
|
||||||||||||||||
18.10.2013, 22:53 | 5 | |||||||||||||||
Ryuk,
по моему у тебя проблемы с двоичкой, ты думаешь что это какая то экзотика Но внутри машины все данные лежат в двоичном коде, а на экран выводятся уже в виде буковок, рисунков, чисел вот например как можно( для латинского алфавита) сделать маленькие буквы из больших
http://ru.wikipedia.org/wiki/ASCII
1
|
180 / 178 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
18.10.2013, 22:57 [ТС] | 6 |
Поставим вопрос по другому, зачем поразрядные операторы, если я могу сравнивать десятичные числа с помощью логических операторов?
0
|
180 / 178 / 56
Регистрация: 10.06.2011
Сообщений: 871
|
|
18.10.2013, 23:25 [ТС] | 10 |
ValeryS, до этого, был хороший пример, только не понял как из ASCII достать шестнадцатеричные числа.
Грубо говоря, с помощью поразрядных операций мы можем проделать нашу программу в еще более мелких деталях?
0
|
Супер-модератор
|
||||||
18.10.2013, 23:48 | 12 | |||||
Поразрядные операции очень часто нужны, для анализа числа в рамках рассмотрения его в двоичном коде. Например, часто при работе с оборудованием, возникает необходимость считать байт с какого нибудь порта, а потом посмотреть скажем 5-ый бит этого числа. если он скажем равен 1, то это означает, что контроллер готов к дальнейшим действиям). для того чтобы это сделать помогает операция &:
Добавлено через 2 минуты То есть мы умножаем нашь байт XXXXXXXX на 00010000 и на выходе получим от умножения 000X0000, таким образом узнаем X. Добавлено через 7 минут Язык Си - низкоуровневый (из высокоуровневых) язык. Использование, указателей, а как следствие прямой доступ к адресному пространству, позволяет видеть картину в "единицах и нулях". Очень детально. А чтобы интерпретировать многие данные, приходится применять вот такую, поразрядную, логику, о которой вы задали вопрос... Добавлено через 2 минуты на самом деле поразрядная логика всегда много вопросов вызывает типа "а нафига это вообще нада!!!". всё потому, что Си не учат люди, а учат С++ сразу, а то и C# или Java. Добавлено через 4 минуты Да в любых, но главное запомнить то, что где они появляются и применяются, там надо взглянуть на число с точки зрения компа, расписать его в двоичной системе счисления. и тогда многое встает на свои места...=)
1
|
Модератор
![]() 8369 / 6214 / 835
Регистрация: 14.02.2011
Сообщений: 21,582
|
|||||||||||
19.10.2013, 00:09 | 13 | ||||||||||
даже если это описка = вместо == то все равно не сработает
32 никогда не равно 1 или так
а если равен 1 то число равно 32, не 0 т.е ИСТИНА
0
|
Супер-модератор
|
||||||
19.10.2013, 00:20 | 14 | |||||
согласен
Добавлено через 2 минуты
ну стремный пример, конечно, но что то на ум ничего лучше не идет. пятница.
0
|
Модератор
![]() 8369 / 6214 / 835
Регистрация: 14.02.2011
Сообщений: 21,582
|
||||||
19.10.2013, 09:55 | 15 | |||||
Ryuk,
вот тебе функция которая печатает двоичное представление числа
можно было бы и сделать без поразрядных операций но не так красиво получится
0
|
19.10.2013, 09:55 | |
Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь. Поразрядные операции Поразрядные операции Поразрядные операции поразрядные операции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |