OberonCore
https://forum.oberoncore.ru/

Получить беззнаковое значение BYTE
https://forum.oberoncore.ru/viewtopic.php?f=29&t=4183
Страница 1 из 1

Автор:  Илья Ермаков [ Вторник, 11 Декабрь, 2012 02:14 ]
Заголовок сообщения:  Получить беззнаковое значение BYTE

Мне приходится использовать такую процедуру:

Код:
CONST littleEndian

   PROCEDURE UByte* (x: BYTE): INTEGER;
      VAR u: INTEGER;
   BEGIN
      u := 0;
      IF littleEndian THEN
         SYSTEM.PUT(S.ADR(u), x);
      ELSE
         HALT(126)
      END;
   RETURN u
   END UByte;


Может быть, я не вижу варианта сделать это без модуля SYSTEM?

Автор:  Alexander Shiryaev [ Вторник, 11 Декабрь, 2012 04:06 ]
Заголовок сообщения:  Re: Получить беззнаковое значение BYTE

x MOD 100H
ORD(SHORT(CHR(x)))

Автор:  Борис Рюмшин [ Вторник, 11 Декабрь, 2012 17:15 ]
Заголовок сообщения:  Re: Получить беззнаковое значение BYTE

Илья Ермаков писал(а):
Может быть, я не вижу варианта сделать это без модуля SYSTEM?

Мог бы у нас спросить)))) Нет, черезмерное употребление SYSTEM вредно для здоровья. 8)

Автор:  Илья Ермаков [ Вторник, 11 Декабрь, 2012 18:36 ]
Заголовок сообщения:  Re: Получить беззнаковое значение BYTE

Спасибо!

Автор:  Пётр Кушнир [ Вторник, 11 Декабрь, 2012 18:59 ]
Заголовок сообщения:  Re: Получить беззнаковое значение BYTE

Борис Рюмшин писал(а):
Нет, черезмерное употребление SYSTEM вредно для здоровья.
Авторы SystemStores считают иначе, судя по всему. Хотя обойтись без SYSTEM там можно, это они так ресурсы экономили?

Автор:  Борис Рюмшин [ Вторник, 11 Декабрь, 2012 20:47 ]
Заголовок сообщения:  Re: Получить беззнаковое значение BYTE

Сложно сказать. Иногда это оправдано, иногда некоторые трюки даже оптимальнее... Лучше лишний раз подумать, прежде чем использовать SYSTEM. Илье Евгеньевичу это сложно сделать --- у него задачи регулярно близко к ядру приближаются, вот он и привыкает :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/