Показано с 1 по 4 из 4

Тема: Преобразование HEX в STRING (в лоб) и обратно

  1. #1
    Пользователь
    Регистрация
    13.01.2018
    Адрес
    Балабаново
    Сообщений
    17

    Question Преобразование HEX в STRING (в лоб) и обратно

    Доброго дня!
    В результате расчёта контрольной суммы, получаю переменную тип BYTE.
    В hex, пусть будет, например 16#9A.
    Теперь мне нужно получить две переменные типа STRING
    В одной должна лежать '9'
    Во второй 'A'
    Ну а дальше, опять нужно получить hex-коды девятки и буквы A.
    Как сделать запись BYTE в STRING (в лоб) - не понимаю.
    Есть ли у кого-нибудь идеи?
    Последний раз редактировалось NIMNUL; 08.02.2024 в 00:09.

  2. #2

    По умолчанию

    Скрытый текст:
    Код:
    VAR
    	initialNumber: BYTE := 16#9A;
    	string_b1: STRING;
    	string_b0: STRING;
    	number_b1: BYTE;
    	number_b0: BYTE;
    END_VAR
    Код:
    IF initialNumber.3 = 0 AND initialNumber.2 = 0 AND initialNumber.1 = 0 AND initialNumber.0 = 0 THEN
    	string_b0 := '0';
    	number_b0 := 16#0;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 0 AND initialNumber.1 = 0 AND initialNumber.0 = 1 THEN
    	string_b0 := '1';
    	number_b0 := 16#1;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 0 AND initialNumber.1 = 1 AND initialNumber.0 = 0 THEN
    	string_b0 := '2';
    	number_b0 := 16#2;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 0 AND initialNumber.1 = 1 AND initialNumber.0 = 1 THEN
    	string_b0 := '3';
    	number_b0 := 16#3;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 1 AND initialNumber.1 = 0 AND initialNumber.0 = 0 THEN
    	string_b0 := '4';
    	number_b0 := 16#4;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 1 AND initialNumber.1 = 0 AND initialNumber.0 = 1 THEN
    	string_b0 := '5';
    	number_b0 := 16#5;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 1 AND initialNumber.1 = 1 AND initialNumber.0 = 0 THEN
    	string_b0 := '6';
    	number_b0 := 16#6;
    ELSIF initialNumber.3 = 0 AND initialNumber.2 = 1 AND initialNumber.1 = 1 AND initialNumber.0 = 1 THEN
    	string_b0 := '7';
    	number_b0 := 16#7;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 0 AND initialNumber.1 = 0 AND initialNumber.0 = 0 THEN
    	string_b0 := '8';
    	number_b0 := 16#8;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 0 AND initialNumber.1 = 0 AND initialNumber.0 = 1 THEN
    	string_b0 := '9';
    	number_b0 := 16#9;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 0 AND initialNumber.1 = 1 AND initialNumber.0 = 0 THEN
    	string_b0 := 'A';
    	number_b0 := 16#A;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 0 AND initialNumber.1 = 1 AND initialNumber.0 = 1 THEN
    	string_b0 := 'B';
    	number_b0 := 16#B;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 1 AND initialNumber.1 = 0 AND initialNumber.0 = 0 THEN
    	string_b0 := 'C';
    	number_b0 := 16#C;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 1 AND initialNumber.1 = 0 AND initialNumber.0 = 1 THEN
    	string_b0 := 'D';
    	number_b0 := 16#D;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 1 AND initialNumber.1 = 1 AND initialNumber.0 = 0 THEN
    	string_b0 := 'E';
    	number_b0 := 16#E;
    ELSIF initialNumber.3 = 1 AND initialNumber.2 = 1 AND initialNumber.1 = 1 AND initialNumber.0 = 1 THEN
    	string_b0 := 'F';
    	number_b0 := 16#F;
    END_IF
    IF initialNumber.7 = 0 AND initialNumber.6 = 0 AND initialNumber.5 = 0 AND initialNumber.4 = 0 THEN
    	string_b1 := '0';
    	number_b1 := 16#0;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 0 AND initialNumber.5 = 0 AND initialNumber.4 = 1 THEN
    	string_b1 := '1';
    	number_b1 := 16#1;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 0 AND initialNumber.5 = 1 AND initialNumber.4 = 0 THEN
    	string_b1 := '2';
    	number_b1 := 16#2;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 0 AND initialNumber.5 = 1 AND initialNumber.4 = 1 THEN
    	string_b1 := '3';
    	number_b1 := 16#3;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 1 AND initialNumber.5 = 0 AND initialNumber.4 = 0 THEN
    	string_b1 := '4';
    	number_b1 := 16#4;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 1 AND initialNumber.5 = 0 AND initialNumber.4 = 1 THEN
    	string_b1 := '5';
    	number_b1 := 16#5;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 1 AND initialNumber.5 = 1 AND initialNumber.4 = 0 THEN
    	string_b1 := '6';
    	number_b1 := 16#6;
    ELSIF initialNumber.7 = 0 AND initialNumber.6 = 1 AND initialNumber.5 = 1 AND initialNumber.4 = 1 THEN
    	string_b1 := '7';
    	number_b1 := 16#7;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 0 AND initialNumber.5 = 0 AND initialNumber.4 = 0 THEN
    	string_b1 := '8';
    	number_b1 := 16#8;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 0 AND initialNumber.5 = 0 AND initialNumber.4 = 1 THEN
    	string_b1 := '9';
    	number_b1 := 16#9;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 0 AND initialNumber.5 = 1 AND initialNumber.4 = 0 THEN
    	string_b1 := 'A';
    	number_b1 := 16#A;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 0 AND initialNumber.5 = 1 AND initialNumber.4 = 1 THEN
    	string_b1 := 'B';
    	number_b1 := 16#B;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 1 AND initialNumber.5 = 0 AND initialNumber.4 = 0 THEN
    	string_b1 := 'C';
    	number_b1 := 16#C;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 1 AND initialNumber.5 = 0 AND initialNumber.4 = 1 THEN
    	string_b1 := 'D';
    	number_b1 := 16#D;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 1 AND initialNumber.5 = 1 AND initialNumber.4 = 0 THEN
    	string_b1 := 'E';
    	number_b1 := 16#E;
    ELSIF initialNumber.7 = 1 AND initialNumber.6 = 1 AND initialNumber.5 = 1 AND initialNumber.4 = 1 THEN
    	string_b1 := 'F';
    	number_b1 := 16#F;
    END_IF
    Последний раз редактировалось Емельянов Кирилл; 08.02.2024 в 01:32.

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    Цитата Сообщение от NIMNUL Посмотреть сообщение
    Доброго дня!
    В результате расчёта контрольной суммы, получаю переменную тип BYTE.
    В hex, пусть будет, например 16#9A.
    Теперь мне нужно получить две переменные типа STRING
    В одной должна лежать '9'
    Во второй 'A'
    Ну а дальше, опять нужно получить hex-коды девятки и буквы A.
    Как сделать запись BYTE в STRING (в лоб) - не понимаю.
    Есть ли у кого-нибудь идеи?
    Oscat библиотека, там давно уже все продумано
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4

Похожие темы

  1. Язык ST преобразование string в real
    от LoneJke в разделе Трёп (Курилка)
    Ответов: 1
    Последнее сообщение: 27.12.2019, 17:06
  2. RS 485 В Ethernet и обратно
    от Вова13 в разделе Сетевые технологии
    Ответов: 12
    Последнее сообщение: 30.05.2018, 10:37
  3. Ответов: 1
    Последнее сообщение: 20.02.2011, 22:38
  4. преобразование Real>string кракозябры
    от K580BB55A в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 09.11.2010, 17:07
  5. Преобразование из string
    от Dima_31 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 07.05.2010, 20:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •