Раздел: Стандартные функции Паскаля

Функция Lo

Основы программирования 2.0 Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

Функция Lo в Паскале, в противоположность функции Hi, возвращает младшую часть числа: байт, слово, двойное слово или тетраду (полубайт). Синтаксис:

function Lo(B : Byte) : Byte;

function Lo(i : Integer) : Byte;

function Lo(w : Word) : Byte;

function Lo(l : LongInt) : Word;

function Lo(l : DWord) : Word;

function Lo(i : Int64) : DWord;

function Lo(q : QWord) : DWord;

Тип возвращаемого значения зависит от разрядности (размера) числа, передаваемого в функцию:

Разрядность числа Тип возвращаемого значения Возвращаемое значение
8 Byte Младшая тетрада (полубайт)
16 Byte Младший байт
32 Word Младшее слово
64 Cardinal Младшее двойное слово

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

Пример:

program hilo;

var L : DWord;
    W : Word;
    B : Byte;

//*******************************************************************
// ОСНОВНАЯ ПРОГРАММА
//*******************************************************************
begin
  B := %11110000;
  Writeln('B = ', B);           //Выведет 240
  Writeln('Lo(B) = ', Lo(B));   //Выведет 0
  B := %11110001;
  Writeln('B = ', B);           //Выведет 241
  Writeln('Lo(B) = ', Lo(B));   //Выведет 1

  W := $FF00;
  Writeln('W = ', W);           //Выведет 65280
  Writeln('Lo(W) = ', Lo(W));   //Выведет 0
  W := $FF0F;
  Writeln('W = ', W);           //Выведет 65295 ($FF0F)
  Writeln('Lo(W) = ', Lo(W));   //Выведет 15 ($0F)

  L := $FFFF0000;
  Writeln('L = ', L);           //Выведет 4294901760 ($FFFF0000)
  Writeln('Lo(L) = ', Lo(L));   //Выведет 0 ($0000)
  L := $FFFF00F0;
  Writeln('L = ', L);           //Выведет 4294902000 ($FFFF00F0)
  Writeln('Lo(L) = ', Lo(L));   //Выведет 240 ($00F0)

  WriteLn('Then end. Press ENTER...');
  ReadLn;
end.


Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика