Раздел: Стандартные функции Паскаля
Как преобразовать число в двоичную строку
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
В программировании довольно часто приходится выполнять различные преобразования: кодировки, типы данных, единицы измерения и т.п.
А в некоторых направлениях программирования также довольно часто используются числа в двоичном представлении. Мне, по крайней мере, приходится иметь с этим дело постоянно.
Нередко я создавал свои собственные функции для подобных преобразований. Это полезно для развития и обучения.
Однако при профессиональной разработке времени на создание таких функций нет. Поэтому лучше использовать готовые. С одной из таких функций я вас сегодня познакомлю.
Функция BinStr
Функция BinStr Преобразует целое число в строку в двоичном представлении. Синтаксис:
function binStr(Val : Longint; cnt : byte) : shortstring; function binStr(Val : int64; cnt : byte) : shortstring; function binStr(Val : qword; cnt : byte) : shortstring;
Функция binStr возвращает строку, которая содержит двоичное представление целого числа, переданного через параметр Val. Количество символов в строке будет не более, чем указано в параметре cnt. То есть в строке будут только младшие (правые) биты числа. Чтобы получить полное представление больших целых чисел, надо указывать cnt = 32. Иначе старшие разряды могут не попасть в результат.
Пример:
program binstrfunc; var x, y : integer; begin x := 100; y := x * 245; WriteLn(x, ' - ', binStr(x, 4)); //0100 WriteLn(x, ' - ', binStr(x, 8)); //01100100 WriteLn(y, ' - ', binStr(y, 16)); //0101111110110100 z := High(Int64); WriteLn(z, ':', #10#13, binStr(z, 64)); z := Low(Int64); WriteLn(z, ':', #10#13, binStr(z, 64)); ReadLn; end.
Двоичное число в виде строки
Зачем вообще может понадобиться выводить двоичное число в виде строки?
Бывает это не так уж и часто. Но всё-таки иногда такая необходимость возникает. Например, если вам надо отследить на экране значения каждого бита в числе.
Я довольно часто упаковываю в число значения логических переменных, где каждый разряд соответствует, например, состоянию какого-то датчика. Это бывает необходимо, когда надо сэкономить место и время при передаче данных по последовательному каналу. Тогда, например, вместо передачи 32 логических переменных я передаю всего 1 переменную типа WORD, в которой каждый разряд соответствует одной логической переменной. А уже в программе я это число дешифрую и таким образом получаю состояния, например, 32-х датчиков.
Ну а если программа находится в ходе отладки и пока нет времени на выполнение вывода на экран всех 32-х датчиков, то можно просто вывести это число в двоичной форме и таким образом понять, в каком состоянии находится тот или иной датчик. Вот здесь то и пригодится функция BinStr.
Но вообще это уже другая история...
P.S. Как создать собственную функцию, подобную BinStr, см. здесь.
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |