Программирование на C. Урок 15. Побитовые операторы. Часть 1

  Рет қаралды 17,696

narod stream

narod stream

Күн бұрын

Пікірлер: 29
@kabukijoe99
@kabukijoe99 4 жыл бұрын
Я не программирую на С, но урок о двоичных операторах очень доходчив и визуальное подкрепление правильное. Спасибо. Тему понял.
@Ivan_Ivanov943
@Ivan_Ivanov943 5 жыл бұрын
Спасибо за разъяснение👍
@ybpvin
@ybpvin 5 жыл бұрын
Очень полезное видео. Лайк!
@lexresident
@lexresident 5 жыл бұрын
Спасибо за творчество! 👍
@murm3ow407
@murm3ow407 4 жыл бұрын
Спасибо большое, наконец то понял)
@famousman6400
@famousman6400 4 жыл бұрын
как то заморочено с отображением битов... можно и по проще: void print_bits(unsigned char octet) { unsigned int i; unsigned char bit; i = 8; while (i--) { bit = ((octet >> i) & 1) + '0'; putchar(bit); } } не строка конечно, но быстро посмотреть можно
@ozn_
@ozn_ 5 жыл бұрын
Отличные уроки
@badger_aav5341
@badger_aav5341 4 жыл бұрын
Замечательеые уроки, смотрю один за другим, код из статей на Вашем сайте чаще всего перепечатываю, однако иногда все-таки ленюсь и грешу копированием со вставкой) Так вот у Вас с статьях на сайте частенько пропущен символ "\" перед "n" "r" и прочими "нечитаемыми символами" строки в вызовах функции printf("..."), это сделано умышленно в роли скрытых ошибок для самомстоятельного исправления? Или же обычный человеческий фактор?
@matveyds
@matveyds 4 жыл бұрын
Очень сложно для первой встречи с побитовыми операторами
@hardannoying3914
@hardannoying3914 3 жыл бұрын
Мы в школе эту двоичную фигню изучали, думал не пригодится....
@timelord1137
@timelord1137 5 жыл бұрын
Спасибо)
@Ivan-rc4it
@Ivan-rc4it 5 жыл бұрын
Мне кажется на 17:30 Вы оговорились, если будет два значащихся байта, то j успеет до 2 проинкрементироватся, а не до 1. For работает так, как Вы объясняли и как по правилам j = 1(2 байта), выполняется условие в For, потом j инкрементируется до 2, проверяется условие, а оно не соответствует и мы выходим из for, но j=2 остается.
@__Andjelo__
@__Andjelo__ 5 жыл бұрын
но работает, как посмотреть пошагово ? обясните это ((bt[j-k-1] >> i)
@__Andjelo__
@__Andjelo__ 5 жыл бұрын
мы записали байты с права на лево,а отобразить надо на оборот, я правильно понял? может тогда лучше ++k инкриментировать сразу, а в поменять (( bt[j-k+1] >> i) & 0b00000001) возьмем старшой байт?
@АлександрМартынов-й1б
@АлександрМартынов-й1б 2 жыл бұрын
Здравствуйте, прошло пару дней как я пересматриваю этот урок. как работает программа я понял, но не могу понять почему после strcpy (in_str, "0b"); вы сразу не написали strcat (in_str, bt); ?
@goodspeedmen
@goodspeedmen 5 жыл бұрын
А что видео под лупой смотреть нужно?
@__Andjelo__
@__Andjelo__ 5 жыл бұрын
Странно в видео >> говорит что сдвиг в право в текстовой версии, где пишется функция написанно, что сдвиг в лево, где правда?
@narodstream552
@narodstream552 5 жыл бұрын
Правда в том, что я с детства путаю право и лево. Так что у нас в России считается так - "куда показывают - туда и ехать!".
@alex080583
@alex080583 5 жыл бұрын
всё на понятном языке
@__Andjelo__
@__Andjelo__ 5 жыл бұрын
И все так и, как это работает switch ((bt[j-k-1] >> i) , предположим, что у нас было 32битное число т.е j=3, от сюда имеем 3-0-1=2, но bt[2] это 3 байт, но ни как не младшиий, поясните плз, или я туплю
@narodstream552
@narodstream552 5 жыл бұрын
Тут всё дело в том. что байты складываются в строку наоборот, такова особенность функции strcat.
@alexgubarew2435
@alexgubarew2435 Жыл бұрын
Спасибо. А то в книге паршиво объясняется
@Serch_404
@Serch_404 5 жыл бұрын
объясните пожалуйста это: (bt[j-k-1] >> i) -Я дурак не понимаю как???
@narodstream552
@narodstream552 5 жыл бұрын
Я вроде всё объяснил. Посмотрите ещё приоритет операций что ли. Сначала выполняется выражение в скобках, потом берём этот элемент массива и сдвигаем на i
@Serch_404
@Serch_404 5 жыл бұрын
Я понял, просто когда мы перебираем байты, чтобы те из них в которых есть информация отдельно положить в массив, мы увеличиваем счётчик и патом проверяем условие (для выполнения break). И получается в этой строчке мы, как бы, лишний раз плбсуем индекс, а затем в этой уже понятной) строчке его минусуем на 1.
@narodstream552
@narodstream552 5 жыл бұрын
Я написал порядок выполнения операций. Если Вы думаете, что он не такой, посмотрите дизассемблированный код в отладке.
@ДмитрийБадров-б9с
@ДмитрийБадров-б9с 4 жыл бұрын
Сейчас бы break использовать...
@goodspeedmen
@goodspeedmen 5 жыл бұрын
Вот не понятно, почему операция называется "Исключающие ИЛИ" хотя истена у нас тогда когда биты разные! Логичней было бы её назвать эту операцию "Включающие ИЛИ" ну или "Истенное ИЛИ"???
@SpaceflightSimulator-m3q
@SpaceflightSimulator-m3q 5 жыл бұрын
Ответ на этот вопрос где-то там в истории...
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
My scorpion was taken away from me 😢
00:55
TyphoonFast 5
Рет қаралды 2,7 МЛН
HOW TRANSISTORS RUN CODE?
14:28
Core Dumped
Рет қаралды 675 М.
Битовые операции сдвига и поворота
26:16
Volodya Mozhenkov
Рет қаралды 7 М.
Everything You Need To Know About DeepSeek
8:07
The Coding Sloth
Рет қаралды 2,7 М.
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН