Сдвиг лейкоцитарной формулы влево: что это такое значит, причины, лечение

Логические битовые (побитовые) операции Битовые операции сдвига

В прошлой статье была рассмотрена тема логических операций и выражений. В этой статье мы рассмотрим логические битовые операции. Битовые операции очень близки к логическим операциям, можно даже сказать, что это одно и тоже. Разница только в том,что логические операции применяются к высказываниям, а битовые операции, с такими же правилами и результатами применяются к битам.


Битовые операции играют не последнюю роль в программе, позволяют более проще и практичнее реализовать замыслы программиста. Поэтому, бояться выражения «битовые операции» и их самих не надо, тем более, что страшное и не понятное в них — только в названии. А я постараюсь как можно подробнее рассказать и о битовых операциях, и об их применении в практике программистов. Ряд источников по языкам низкого уровня называет побитовые логические операции просто логическими, но в терминологии программирования на языках высокого уровня в названиях битовых операций присутствуют прилагательные битовый, побитовый, поразрядный.
В распространённых языках программирования встроенными средствами реализуются только четыре побитовые (битовые) логические операции: И, ИЛИ, НЕ и исключающее ИЛИ. Для задания произвольной побитовой логической операции вполне достаточно перечисленных операций.

Чтобы мы не путались с выражениями «битовая операция» и «побитовая операция», запомним, что выполнение битовой операции — это выполнение побитовых операций с отдельными битами, и в дальнейшем я буду просто писать — «битовая операция» или «логическая операция».

Кроме того, читая техническую литературу вы наверняка столкнетесь с терминами «унарная операция» и «бинарная операция». Унарная операция — операция над одним операндом (Битовая операция «НЕ»). Бинарная операция — операция с двумя операндами (Битовые операции «И», «ИЛИ», «ИСКЛЮЧАЮЩЕЕ ИЛИ»)

И еще, регистр общего назначения (R0…R31) я буду обозначать аббревиатурой РОН.

Зачем нужны побитовые операторы?

В далеком прошлом компьютерной памяти было очень мало и ею сильно дорожили. Это было стимулом максимально разумно использовать каждый доступный бит. Например, в логическом типе данных bool есть всего лишь два возможных значения (true и false), которые могут быть представлены одним битом, но по факту занимают целый байт памяти! А это, в свою очередь, из-за того, что переменные используют уникальные адреса памяти, а они выделяются только в байтах. Переменная bool занимает 1 бит, а другие 7 бит — тратятся впустую.

Используя побитовые операторы, можно создавать функции, которые позволят уместить 8 значений типа bool в переменную размером 1 байт, что значительно сэкономит потребление памяти. В прошлом такой трюк был очень популярен. Но сегодня, по крайней мере, в прикладном программировании, это не так.

Теперь памяти стало существенно больше и программисты обнаружили, что лучше писать код так, чтобы было проще и понятнее его поддерживать, нежели усложнять его ради незначительной экономии памяти. Поэтому спрос на использование побитовых операторов несколько уменьшился, за исключением случаев, когда необходима уж максимальная оптимизация (например, научные программы, которые используют огромное количество данных; игры, где манипуляции с битами могут быть использованы для дополнительной скорости; встроенные программы, где память по-прежнему ограничена).

В языке С++ есть 6 побитовых операторов:

ОператорСимволПримерОперация
Побитовый сдвиг влево<<x << yВсе биты в x смещаются влево на y бит
Побитовый сдвиг вправо>>x >> yВсе биты в x смещаются вправо на y бит
Побитовое НЕ~~xВсе биты в x меняются на противоположные
Побитовое И&x & yКаждый бит в x И каждый соответствующий ему бит в y
Побитовое ИЛИ|x | yКаждый бит в x ИЛИ каждый соответствующий ему бит в y
Побитовое исключающее ИЛИ (XOR)x ^ yКаждый бит в x XOR с каждым соответствующим ему битом в y

В побитовых операциях следует использовать только целочисленные типы данных unsigned, так как C++ не всегда гарантирует корректную работу побитовых операторов с целочисленными типами signed.

Правило: При работе с побитовыми операторами используйте целочисленные типы данных unsigned.

Лейкограмма

Лейкограммой или лейкоцитарной формулой называют соотношение абсолютного и относительного числа белых клеток крови. Их количество определяют одновременно с эритроцитами, тромбоцитами, уровнем гемоглобина и цветовым показателем, и включают в общий анализ крови, а также иммунограмму.

Сдвиг лейкоцитарной формулы влево подразумевает увеличение количества юных и незрелых форм нейтрофилов, появление ретикулоцитов, метамиелоцитов и миелоцитов в периферическом кровотоке. Такая картина может говорить о компенсаторном состоянии после кровопотери, о воспалительной реакции, поражении костного мозга или о лучевой болезни. Поэтому, помимо анализа крови, важно сделать полное обследование.

Сдвиг лейкограммы вправо – это увеличение абсолютного и относительного числа «устаревших» нейтрофилов (сегментоядерных). Такое поведение крови указывает на анемию, болезни паренхиматозных органов, а также компенсаторное окно после переливания компонентов крови.

Побитовый сдвиг влево (<<) и побитовый сдвиг вправо (>>)

В языке C++ количество используемых бит основывается на размере типа данных (в 1 байте находятся 8 бит). Оператор побитового сдвига влево (<<) сдвигает биты влево. Левый операнд является выражением, в котором они сдвигаются, а правый — количество мест, на которые нужно сдвинуть. Поэтому в выражении 3 << 1 мы имеем в виду «сдвинуть биты влево в литерале 3 на одно место».

Примечание: В следующих примерах мы будем работать с 4-битными двоичными значениями.

Рассмотрим число 3, которое в двоичной системе равно 0011:

3 = 0011 3 << 1 = 0110 = 6 3 << 2 = 1100 = 12 3 << 3 = 1000 = 8

В последнем третьем случае один бит перемещается за пределы самого литерала! Биты, сдвинутые за пределы двоичного числа, теряются навсегда.

Оператор побитового сдвига вправо (>>) сдвигает биты вправо. Например:

12 = 1100 12 >> 1 = 0110 = 6 12 >> 2 = 0011 = 3 12 >> 3 = 0001 = 1

В третьем случае мы снова переместили бит за пределы литерала. Он также потерялся навсегда.

Хотя в примерах, приведенных выше, мы смещаем биты только в литералах, мы также можем смещать биты и в переменных:

1
2
unsigned int x = 4;

x = x << 1; // x должен стать равным 8

Следует помнить, что результаты операций с побитовыми сдвигами в разных компиляторах могут отличаться.

Лейкоцитарная формула – что это такое


Лейкоцитарной формулой называют соотношение количества определенных видов лейкоцитов (всего их пять) к общему количеству указанных кровяных телец. Смещение пропорции говорит о том, что в организм проникла инфекция, есть воспаление, начался гнойный процесс или присутствует иная патология. Именно это сдвигает лейкоцитарную формулу. Виды лейкоцитов (их еще называют белыми клетками или тельцами):

  1. Нейтрофилы. Оказывает противомикробное воздействие.
  2. Моноциты. Способствуют восстановлению тканей, уничтожают чужеродные тельца, участвуют в формировании иммунного ответа.
  3. Эозинофилы. Появляются после поражения организма инфекцией. Это ответная реакция на раздражитель.
  4. Лимфоциты. Участвуют в уничтожении чужих тел, образуя защитные антитела.
  5. Базофилы. Способствуют передвижению других лейкоцитов к очагам инфекций.

Изучив изменение нормального количества телец, врач выставляет предварительный диагноз и назначает необходимые дополнительные обследования.

Побитовый оператор НЕ

Побитовый оператор НЕ (~), пожалуй, самый простой для объяснения и понимания. Он просто меняет каждый бит на противоположный, например, с 0 на 1 или с 1 на 0. Обратите внимание, результаты побитового НЕ зависят от размера типа данных!

Предположим, что размер типа данных составляет 4 бита:

4 = 0100 ~ 4 = 1011 (двоичное) = 11 (десятичное)

Предположим, что размер типа данных составляет 8 бит:

4 = 0000 0100 ~ 4 = 1111 1011 (двоичное) = 251 (десятичное)

Методы подсчета

Для того чтобы определить, есть ли сдвиг лейкоцитарной формулы влево, необходимы универсальные способы подсчета клеток крови. Они должны быть простыми и доступными любой лаборатории, ведь клинический анализ крови является базовым в любом медицинском исследовании.

Клетки крови распределяются на предметном стекле неравномерно, так как имеют разную плотность:

  • периферическое положение занимают нейтрофилы, базофилы и эозинофилы;
  • ближе к центру стекла располагаются моноциты и лимфоциты.

Для подсчета количества лейкоцитов наиболее часто пользуются двумя методами – Шиллинга и Филипченко.

Метод Шиллинга предполагает определение количества клеток в четырех противоположных участках на предметном стекле. В общей сложности получается около ста или двухсот клеток. Исходя из этого количества высчитывают соотношение между фракциями.

Метод Филипченко предполагает, что лаборант мысленно делит мазок на три части:

  • начальную;
  • среднюю;
  • конечную.

Клетки подсчитывают по условной линии, проведенной поперек мазка. В каждой части подсчитывается одинаковое количество клеток. В сумме получается около двухсот лейкоцитов. Все клетки записывают в таблицу или сетку Егорова. Для того чтобы быстро и безошибочно определять лейкоцитарную формулу, помимо дифференциальной таблицы используют специальный 11-клавишный калькулятор.

Побитовые операторы И, ИЛИ и исключающее ИЛИ (XOR)

Побитовые операторы И (&) и ИЛИ (|) работают аналогично логическим операторам И и ИЛИ. Однако, побитовые операторы применяются к каждому биту отдельно! Например, рассмотрим выражение 5 | 6. В двоичной системе это 0101 | 0110. В любой побитовой операции операнды лучше всего размещать следующим образом:

0 1 0 1 // 5 0 1 1 0 // 6

А затем применять операцию к каждому столбцу с битами по отдельности. Как вы помните, логическое ИЛИ возвращает true (1), если один из двух или оба операнды истинны (1). Аналогичным образом работает и побитовое ИЛИ. Выражение 5 | 6 обрабатывается следующим образом:

0 1 0 1 // 5 0 1 1 0 // 6 ——- 0 1 1 1 // 7

Результат:

0111 (двоичное) = 7 (десятичное)

Также можно обрабатывать и комплексные выражения ИЛИ, например, 1 | 4 | 6. Если хоть один бит в столбце равен 1, то результат целого столбца — 1. Например:

0 0 0 1 // 1 0 1 0 0 // 4 0 1 1 0 // 6 ——— 0 1 1 1 // 7

Результатом 1 | 4 | 6 является десятичное 7.

Побитовое И работает аналогично логическому И — возвращается true, только если оба бита в столбце равны 1. Рассмотрим выражение 5 & 6:

0 1 0 1 // 5 0 1 1 0 // 6 ——— 0 1 0 0 // 4

Также можно решать и комплексные выражения И, например, 1 & 3 & 7. Только при условии, что все биты в столбце равны 1, результатом столбца будет 1.

0 0 0 1 // 1 0 0 1 1 // 3 0 1 1 1 // 7 ——— 0 0 0 1 // 1

Последний оператор — побитовое исключающее ИЛИ (^) (сокр. «XOR» от англ. «eXclusive OR«). При обработке двух операндов, исключающее ИЛИ возвращает true (1), только если один и только один из операндов является истинным (1). Если таких нет или все операнды равны 1, то результатом будет false (0). Рассмотрим выражение 6 ^ 3:

0 1 1 0 // 6 0 0 1 1 // 3 ——- 0 1 0 1 // 5

Также можно решать и комплексные выражения XOR, например, 1 ^ 3 ^ 7. Если единиц в столбце чётное количество, то результатом будет 0, если же нечётное количество, то результат — 1. Например:

0 0 0 1 // 1 0 0 1 1 // 3 0 1 1 1 // 7 ——— 0 1 0 1 // 5

Клиническое значение [ править | править код ]

В клинической практике лейкограмма имеет большое значение, так как при любых изменениях в организме процентное содержание одних видов клеток белой крови увеличивается или уменьшается за счёт увеличения или уменьшения в той или иной степени других. По данным лейкограммы можно судить о ходе патологического процесса, появлении осложнений и прогнозировать исход болезни. Данные лейкограммы необходимо сопоставлять с клиническим проявлением болезни

Описание конкретных показателей [ править | править код ]

Нейтрофилы [ править | править код ]

Нейтрофилы

в норме представлены тремя или двумя группами: могут присутствовать в малом количестве либо отсутствовать юные (ю) 0-0.5%; палочкоядерные (п/я) 1-5% и сегментоядерные (с/я) 40-68%. Они обладают, в основном, бактерицидной и дезинтоксикационной функциями, нося условное название микрофагов (что отражает ведущий механизм их иммунной функции — фагоцитоз).

В зависимости от степени зрелости и формы ядра в периферической крови выделяют палочкоядерные (более молодые) и сегментоядерные (зрелые) нейтрофилы. Более молодые клетки нейтрофильного ряда – юные (метамиелоциты), миелоциты, промиелоциты – появляются в периферической крови в случае патологии и являются свидетельством стимуляции образования клеток этого вида. Длительность циркуляции нейтрофилов в крови составляет в среднем примерно 6,5 часов, затем они мигрируют в ткани.

В норме содержание в крови: 48-78 %

Пределы нормы содержания нейтрофилов в лейкоцитарной формуле:

У детей в норме происходит 2 перекреста лейкоцитарной формулы в возрасте пяти дней и 4-5 лет, при этом до 5дней преобладают нейтрофилы над лимфоцитами, почти как у взрослого человека, затем происходит первый перекрест: соотношение лимфоциты/нейтрофилы из примерно 20%/60% превращается в 60%/20%, так сохраняется до второго перекреста лейкоцитарной формулы, обычно он происходит в 4 года, но допустимо до 5 лет, после которого содержание и пропорции нейтрофилы/лимфоциты соответствует нормам взрослого человека.

  • воспалительные процессы;
  • инфаркт миокарда, легкого;
  • злокачественные новообразования;
  • многие инфекционные процессы.

К уменьшению (нейтропения) приводят

  • вирусные инфекции (гепатит, корь, краснуха, грипп, ветряная оспа, полиомиелит);
  • инфекции, вызванные простейшими (токсоплазма, малярия);
  • постинфекционные состояния;
  • апластические анемии;
  • грибковые инфекции;
  • хронические бактериальные инфекции (стрепто- или стафилококковые, туберкулез, бруцеллез);
  • проведение лучевой терапии.

Увеличение количества незрелых нейтрофилов (сдвиг влево):

  • острые воспалительные процессы (крупозная пневмония);
  • некоторые инфекционные заболевания (скарлатина, рожистое воспаление, дифтерия);
  • злокачественные опухоли (рак паренхимы почки, молочной и предстательной желез) и метастазирование в костный мозг;
  • миелопролиферативные заболевания, особенно хронический миелолейкоз;
  • туберкулёз;
  • инфаркт миокарда;
  • кровотечения;
  • гемолитический криз;
  • сепсис;
  • интоксикации;
  • шок;
  • физическое перенапряжение;
  • ацидоз и коматозные состояния.

Эозинофилы [ править | править код ]

Эозинофилы

(Э) — также обладают фагоцитарными свойствами, но это свойство используют прежде всего для участия в аллергическом процессе. Они фагоцитируют комплекс антиген-антитело, образованные преимущественно Ig E.

Увеличение (эозинофилия) наблюдается при

  • аллергических состояниях (бронхиальная астма, аллергические поражения кожи, сенная лихорадка);
  • глистной инвазии (аскаридоз, эхинококкоз, лямблиоз, трихинеллез, стронгилоидоз);
  • инфекционных заболеваниях (в стадии выздоровления);
  • после введения антибиотиков;
  • коллагенозах.

Уменьшение (эозинопения) встречается при

  • некоторых острых инфекционных заболеваниях (брюшной тиф, дизентерия);
  • остром аппендиците;
  • сепсисе;
  • травмах;
  • ожогах;
  • хирургических вмешательствах;
  • в первые сутки развития инфаркта миокарда.

Базофилы [ править | править код ]

Базофилы

(Б) — участвуют в воспалительных и аллергических процессах в организме.

Увеличение базофилов бывает при

  • аллергических состояниях;
  • заболеваниях системы крови;
  • острых воспалительных процессах в печени;
  • эндокринных нарушениях;
  • хронических воспалениях в желудочно-кишечном тракте;
  • язвенном воспалении кишечника;
  • лимфогранулематозе.

Уменьшение базофилов (базопения) встречается при

  • длительной лучевой терапии;
  • острых инфекциях;
  • остром воспалении лёгких;
  • гиперфункции щитовидной железы;
  • стрессовых состояниях.

Моноциты [ править | править код ]

Моноциты

(М) — относятся к агранулоцитам. Относятся к системе фагоцитирующих мононуклеаров. Они удаляют из организма отмирающие клетки, остатки разрушенных клеток, денатурированный белок, бактерии и комплексы антиген-антитело.

В норме содержание моноцитов в крови: 3-11 %

  • при инфекционных заболеваниях (туберкулез, сифилис, протозойные инфекции);
  • при некоторых заболеваниях системы крови;
  • при злокачественных новообразованиях;
  • при коллагенозах;
  • при хирургических вмешательствах;
  • в период выздоровления после острых состояний.

Побитовые операторы присваивания

Как и в случае с арифметическими операторами присваивания, язык C++ предоставляет побитовые операторы присваивания для облегчения внесения изменений в переменные.

ОператорСимволПримерОперация
Присваивание с побитовым сдвигом влево<<=x <<= yСдвигаем биты в x влево на y бит
Присваивание с побитовым сдвигом вправо>>=x >>= yСдвигаем биты в x вправо на y бит
Присваивание с побитовой операцией ИЛИ|=x |= yПрисваивание результата выражения x | y переменной x
Присваивание с побитовой операцией И&=x &= yПрисваивание результата выражения x & y переменной x
Присваивание с побитовой операцией исключающего ИЛИ^=x ^= yПрисваивание результата выражения x ^ y переменной x

Например, вместо х = х << 1; мы можем написать х <<= 1;.

Кому нужен анализ крови: тревожные симптомы

Повышение нейтрофильной фракции не проходит без следа. Большинство изменений, протекающих при этом, имеют выраженные признаки (слабость, головокружение, снижение работоспособности и АД), при появлении которых нужно обратиться к врачу. Это необходимо, чтобы вовремя определить причины изменения состава крови. Проверка уровня всех фракций белой крови требуется в случаях:

  • подозрение на инфекцию или воспаление;
  • обострение хронической патологии;
  • для оценки эффективности назначенного лечения;
  • беспричинная потеря веса;
  • острая боль в животе;
  • набухание лимфоузлов;
  • во время профилактических обследований.

Для лейкограммы кровь берут из пальца или из вены утром, натощак. За 7-10 дней следует прекратить прием ЛП, изменяющих состав крови (оральные контрацептивы, психостимуляторы, НПВС, аллопуринол). Также нельзя употреблять алкоголь и тяжелую для переваривания пищу, не курить, не поднимать тяжести и исключить чрезмерные физические нагрузки – любой из этих факторов сдвигает результат с ошибкой.

Лимфоциты

Лимфоциты являются главными клетками, обеспечивающими наш иммунитет и регулирующие количество и активность других клеток крови. Они бывают трех видов:

  • натуральные, или естественные киллеры (контролирующие своевременную гибель «поломанных» и старых клеток);
  • Т-лимфоциты – обеспечивают клеточное звено иммунитета;
  • В-лимфоциты – отвечают за продукцию иммуноглобулинов.

У взрослого человека в норме должно быть не менее 19% лимфоцитов в периферической крови, но и не более 37. У детей этот показатель выше – до 50. Увеличение количества клеток может быть, как физиологическим, так и патологическим. Естественный подъем уровня лимфоцитов происходит после тяжелого физического труда, а у женщин в начале менструального цикла. Чрезмерное количество этих клеток указывает на наличие вирусного инфекционного заболевания.

Снижение лимфоцитов возможно при иммунодефицитных состояниях, приеме гормонов коры надпочечников, злокачественных онкологических процессах, недостаточности периферического кровообращения, как правило, в это же время наблюдается сдвиг лейкоцитарной формулы влево. Пример такого состояния – тяжелая вирусная или бактериальная инфекция.

Возрастная норма

Сдвиг лейкоцитарной формулы влево – это достаточно общее понятие, зависящее от базовых показателей, специфики заболевания, а также от возраста, так как абсолютное количество лейкоцитов меняется в зависимости от периода жизни человека.

В первый год норма клеток белой крови составляет от 6 до 17 тысяч лейкоцитов в одном микролитре крови. К четырем годам этот уровень снижается до 15,5 тысяч. В шесть лет показатель снижается еще на тысячу. За следующие 4 года количество лейкоцитов медленно убывает до 4,5-13 тысяч в микролитре. Когда ребенок вступает в пубертатный период, уровень белых клеток приближается к таковому у взрослого и физиологического повышения больше не наблюдается, разве что только у отдельных фракций.

Как определить сдвиг лейкоцитарной формулы? Для этого необходимо разбить абсолютное число лейкоцитов сначала на гранулоциты и агранулоциты, затем среди гранулоцитов тоже провести дифференцировку на нейтрофилы, эозинофилы и базофилы, а после этого посчитать, сколько среди нейтрофилов молодых клеток, а сколько зрелых. Если юные нейтрофилы преобладают, значит, сдвиг есть. Чтобы этот процесс был проще, существуют специальные методики и индексы.

Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]