Фанат науки

 
  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Сшивка (упаковка) и разделение битовых полей
_________________________________________________________________________________________________________

  • Как собрать несколько двоичных чисел в одно.
  • Как извлечь несколько разрядов из двоичного числа. скачать (22 МБ)

Содержание

Если видеозапись не идёт, установите flash-плеер и проверьте звуковую карту, либо скачивайте материалы. Если вместо видео - зелёный экран, переустановите flash-плеер (просто скачайте последнюю версию). Если видео "дёргается", поставьте его на паузу и дайте немного подгрузиться. Плеер для просмотра flash-видео на домашней машине скачать здесь . Разверните видео на весь экран. Если напишут "Видео не найдено", "Video not found" - перезапустите видео ещё раз.

Программы на CodeVisionAVR:

#include <mega8515.h>     // Сшивка двух битовых полей в одно. 
int A, B, X;
void main(void)
{
DDRC = 0b11111111;

A = 0b1101;
B = 0b1001;

X = A << 4 | B;  // Считываем число A, сдвигаем его на 4 бита влево. Считываем число В, склеиваем его с А и перезаписываем в ячейку Х.

PORTC = X;  // Выводим число X в порт.
}
__________________________________________________________________________________
#include <mega8515.h>     // Разделение одного битового поля на два. 
#include <delay.h>
int W, A, B;
void main(void)
{
DDRC = 0b11111111;
W = 0b11011001;  // Исходное число, которое мы режем на два.

A = (W & 0b11110000) >> 4;  // Берём число W, извлекаем из него 4 бита слева и сдвигаем их вправо до конца. Перезаписываем в ячейку А.
B = W & 0b00001111;  // Берём число W, извлекаем из него 4 бита справа. Перезаписываем в ячейку B.

PORTC = A;  // Выводим в порт числа А и В поочереди.
delay_ms(3000);
PORTC = B;
}

 

 
   © Фанат науки 2010 - 2017.  Все права защищены.  При использовании материалов обязательна ссылка на сайт  www.fanatnauki.ru    Сайт участвует в Союзе образовательных сайтов