Другие языки программирования и технологии
Кто знает, по какому принципу осуществляются логические операции над числами?
Например, почему 254 И 1 будет нульа 239 И 1 будет один?!Или 239 ИЛИ 1 будет 239?!Может какие-нить ссылки посоветуете по теме?
Почитай книги с булевая алгебра.
Теперь по вопросу.
Берем число 254 (dec)
в бинарном коде 1111 1110 (bin)
1 (dec) 0000 0001 (bin)
теперь элемент «И» это как если бы
1*1=1 1 И 1 = 1
1*0=0 1 И 0 = 1
0*0=0 0 И 0 = 0
теперь по битно
1бит2бит3бит4бит5бит6бит7бит8бит
11111110
И00000001
равно00000000
239 (dec) 1110 1111 (hex)
теперь о элементе «ИЛИ» это тоже самое что
1+1=1 1 ИЛИ 1 = 1
1+0=1 1 ИЛИ 1 = 1
0+0=0 0 ИЛИ 0= 0
1бит2бит3бит4бит5бит6бит7бит8бит
11101111
ИЛИ00000001
равно11101111
Вот.
Теперь по вопросу.
Берем число 254 (dec)
в бинарном коде 1111 1110 (bin)
1 (dec) 0000 0001 (bin)
теперь элемент «И» это как если бы
1*1=1 1 И 1 = 1
1*0=0 1 И 0 = 1
0*0=0 0 И 0 = 0
теперь по битно
1бит2бит3бит4бит5бит6бит7бит8бит
11111110
И00000001
равно00000000
239 (dec) 1110 1111 (hex)
теперь о элементе «ИЛИ» это тоже самое что
1+1=1 1 ИЛИ 1 = 1
1+0=1 1 ИЛИ 1 = 1
0+0=0 0 ИЛИ 0= 0
1бит2бит3бит4бит5бит6бит7бит8бит
11101111
ИЛИ00000001
равно11101111
Вот.
Дмитрий Щёкотов
Спасибо! все, ваши два последних ответа внесли ясность. Еще раз, большое спасибо!!!
Я думаю, что программисты знают. А книги (учебники) читать не пробовал?
Ну во первых, насколько я поняла речь идет о ПОБИТОВЫХ операциях, а НЕ о ЛОГИЧЕСКИХ.
Это две большие разницы, как говорят в Одессе :-))
Дело в том, что компьютер работает с двоичной системой счисления, поэтому все числа и символы представлены набором 0 и 1.
Минимальный набор с которым работает комп состоит из 8 знаков (это называется в информатике 1 байт) .
Самое маленькое число, которое может быть представлено в этом наборе 00000000 (ноль) ,
а самое большое 11111111 (255).
НО! старший бит (самый левый) отводится под хранение ЗНАКА (т. е положительное число или отрицательное) , поэтому под само число отводится только 7знаков.
Предположим вы работаете с беззнаковыми числами.
Тогда 254 в двоичном виде представлена как 11111110, а единица как 00000001.
Результат побитового И тогда и только тогда единица когда ОБА бита равны единице.
в нашем случае
11111110
00000001
в результате все биты 00000000, что соответсвует десятичному 0(нулю) , поэтому на экране ноль :-))
с остальным числами тоже.
Теперь побитовое ИЛИ. Результат побитового ИЛИ тогда и только тогда ноль когда ОБА бита равны нулю.
Вот и весь ответ на ваш вопрос :-))
Это две большие разницы, как говорят в Одессе :-))
Дело в том, что компьютер работает с двоичной системой счисления, поэтому все числа и символы представлены набором 0 и 1.
Минимальный набор с которым работает комп состоит из 8 знаков (это называется в информатике 1 байт) .
Самое маленькое число, которое может быть представлено в этом наборе 00000000 (ноль) ,
а самое большое 11111111 (255).
НО! старший бит (самый левый) отводится под хранение ЗНАКА (т. е положительное число или отрицательное) , поэтому под само число отводится только 7знаков.
Предположим вы работаете с беззнаковыми числами.
Тогда 254 в двоичном виде представлена как 11111110, а единица как 00000001.
Результат побитового И тогда и только тогда единица когда ОБА бита равны единице.
в нашем случае
11111110
00000001
в результате все биты 00000000, что соответсвует десятичному 0(нулю) , поэтому на экране ноль :-))
с остальным числами тоже.
Теперь побитовое ИЛИ. Результат побитового ИЛИ тогда и только тогда ноль когда ОБА бита равны нулю.
Вот и весь ответ на ваш вопрос :-))
Дмитрий Щёкотов
СпасибО!! все, разобрался!=)
перевести число в бинарный (двоичный) вид и поразрядно прооперировать (=
не поняла твоего вопроса, если напишишь, что тебе именно надо помогу тебе!
Похожие вопросы
- Виды логических операций при обработке данных пожалуйста помогите
- Логические операции, таблицы истинности
- Какие вирусы наиболее известные вы знаете, и каков принцип их действия?
- Особенности арифметических операций в C++, деление отрицательных чисел, вопрос ниже
- Программу возведения числа в четвертую степень за 2 операции Pascal
- Информатика."Найти значение логических выражений".Очень нужна ваша помощь!
- Как лучше всего оформлять сложные логические выражения?(С помощью булевских операций или с помощью вложенных if)
- с++ зачем нужны побитовые операции если есть обычные логические операторы?
- Когда сделают карточки по ЯП? На каждый язык свои карточки, со схемами и рисунками логическими.
- подскажите алгоритм решения задачи: Действительное число а. Использовать только умножение. Получить а^64 за 6 операций.