Я не программирую на С, но урок о двоичных операторах очень доходчив и визуальное подкрепление правильное. Спасибо. Тему понял.
@Ivan_Ivanov9435 жыл бұрын
Спасибо за разъяснение👍
@ybpvin5 жыл бұрын
Очень полезное видео. Лайк!
@lexresident5 жыл бұрын
Спасибо за творчество! 👍
@murm3ow4074 жыл бұрын
Спасибо большое, наконец то понял)
@famousman64004 жыл бұрын
как то заморочено с отображением битов... можно и по проще: void print_bits(unsigned char octet) { unsigned int i; unsigned char bit; i = 8; while (i--) { bit = ((octet >> i) & 1) + '0'; putchar(bit); } } не строка конечно, но быстро посмотреть можно
@ozn_5 жыл бұрын
Отличные уроки
@badger_aav53414 жыл бұрын
Замечательеые уроки, смотрю один за другим, код из статей на Вашем сайте чаще всего перепечатываю, однако иногда все-таки ленюсь и грешу копированием со вставкой) Так вот у Вас с статьях на сайте частенько пропущен символ "\" перед "n" "r" и прочими "нечитаемыми символами" строки в вызовах функции printf("..."), это сделано умышленно в роли скрытых ошибок для самомстоятельного исправления? Или же обычный человеческий фактор?
@matveyds4 жыл бұрын
Очень сложно для первой встречи с побитовыми операторами
@hardannoying39143 жыл бұрын
Мы в школе эту двоичную фигню изучали, думал не пригодится....
@timelord11375 жыл бұрын
Спасибо)
@Ivan-rc4it5 жыл бұрын
Мне кажется на 17:30 Вы оговорились, если будет два значащихся байта, то j успеет до 2 проинкрементироватся, а не до 1. For работает так, как Вы объясняли и как по правилам j = 1(2 байта), выполняется условие в For, потом j инкрементируется до 2, проверяется условие, а оно не соответствует и мы выходим из for, но j=2 остается.
@__Andjelo__5 жыл бұрын
но работает, как посмотреть пошагово ? обясните это ((bt[j-k-1] >> i)
@__Andjelo__5 жыл бұрын
мы записали байты с права на лево,а отобразить надо на оборот, я правильно понял? может тогда лучше ++k инкриментировать сразу, а в поменять (( bt[j-k+1] >> i) & 0b00000001) возьмем старшой байт?
@АлександрМартынов-й1б2 жыл бұрын
Здравствуйте, прошло пару дней как я пересматриваю этот урок. как работает программа я понял, но не могу понять почему после strcpy (in_str, "0b"); вы сразу не написали strcat (in_str, bt); ?
@goodspeedmen5 жыл бұрын
А что видео под лупой смотреть нужно?
@__Andjelo__5 жыл бұрын
Странно в видео >> говорит что сдвиг в право в текстовой версии, где пишется функция написанно, что сдвиг в лево, где правда?
@narodstream5525 жыл бұрын
Правда в том, что я с детства путаю право и лево. Так что у нас в России считается так - "куда показывают - туда и ехать!".
@alex0805835 жыл бұрын
всё на понятном языке
@__Andjelo__5 жыл бұрын
И все так и, как это работает switch ((bt[j-k-1] >> i) , предположим, что у нас было 32битное число т.е j=3, от сюда имеем 3-0-1=2, но bt[2] это 3 байт, но ни как не младшиий, поясните плз, или я туплю
@narodstream5525 жыл бұрын
Тут всё дело в том. что байты складываются в строку наоборот, такова особенность функции strcat.
Я вроде всё объяснил. Посмотрите ещё приоритет операций что ли. Сначала выполняется выражение в скобках, потом берём этот элемент массива и сдвигаем на i
@Serch_4045 жыл бұрын
Я понял, просто когда мы перебираем байты, чтобы те из них в которых есть информация отдельно положить в массив, мы увеличиваем счётчик и патом проверяем условие (для выполнения break). И получается в этой строчке мы, как бы, лишний раз плбсуем индекс, а затем в этой уже понятной) строчке его минусуем на 1.
@narodstream5525 жыл бұрын
Я написал порядок выполнения операций. Если Вы думаете, что он не такой, посмотрите дизассемблированный код в отладке.
@ДмитрийБадров-б9с4 жыл бұрын
Сейчас бы break использовать...
@goodspeedmen5 жыл бұрын
Вот не понятно, почему операция называется "Исключающие ИЛИ" хотя истена у нас тогда когда биты разные! Логичней было бы её назвать эту операцию "Включающие ИЛИ" ну или "Истенное ИЛИ"???