Целочисленные величины также могут быть преобразованы в 32-битный формат с плавающей точкой.
Пример:
fn = open("numbers.dat", "wb")
puts(fn, atom_to_float32(157.82)) -- запись 4-х байтов в файл
См. также:
atom_to_float64, float32_to_atom
atom_to_float64
Синтаксис:
include machine.e
s = atom_to_float64(a1)
Описание:
Преобразует атом Euphoria в ряд, состоящий из 8 однобайтовых величин. Эти 8 байтов содержат представление числа с плавающей точкой в 64-битном формате по стандарту IEEE.
Комментарии:
Все атомы Euphoria имеют величины, которые могут быть представлены как 64-битные числа с плавающей точкой в формате по стандарту IEEE, поэтому вы можете преобразовать любой атом в 64-битный формат без всяких потерь точности.
Целочисленные величины также могут быть преобразованы в 64-битный формат с плавающей точкой.
Пример:
fn = open("numbers.dat", "wb")
puts(fn, atom_to_float64(157.82)) -- запись 8 байтов в файл
См. также:
atom_to_float32, float64_to_atom
bits_to_int
Синтаксис:
include machine.e
a = bits_to_int(s)
Описание:
Преобразует ряд, состоящий из единиц и нулей, дающих двоичное представление числа, в положительное десятичное число. Младший значащий "бит" должен быть первым членом ряда, s[1].
Комментарии:
Если вывести ряд s на печать, то младшие биты будут находиться слева, то есть в "инверсном" порядке по отношению к обычной форме записи, принятой для многоразрядных чисел, но это соглашение удобно, так как позволяет иметь возрастающие индексы для доступа к битам по мере возрастания веса битов.
Пример:
a = bits_to_int({1,1,1,0,1})
-- a равно 23 (двоичное 10111)
См. также:
int_to_bits, операции на рядах
bk_color
Синтаксис:
include graphics.e
bk_color(i)
Описание:
Устанавливает цвет фона в один из 16 стандартных цветов. В пиксельных режимах весь экран перекрашивается немедленно. В текстовых режимах любые новые символы, которые вы печатаете, будут появляться на фоне с новым цветом. В некоторых текстовых режимах для фона доступны только 8 различных цветов.
Комментарии:
16 стандартных цветов определены как константы в файле graphics.e.
В пиксельных режимах цвет 0, который обычно соответствует чёрному (BLACK), будет установлен в то самое значение палитры {r,g,b}, что и цвет номера i.
В некоторых пиксельных режимах на краю экрана появляется цветной бордюр . В 256-цветных режимах цвет бордюра соответствует 17-ому цвету палитры. Вы можете управлять цветом бордюра подобно всем другим цветам, используя процедуру palette().
В текстовых режимах для того, чтобы восстановить исходный цвет фона, когда ваша программа заканчивается, т.е. 0 - ЧЁРНЫЙ, вы должны вызвать процедуру bk_color(0). Если курсор находится на нижней строке экрана, целесообразно напечатать что-нибудь перед остановкой вашей программы. Напечатайте хотя бы '\n', и этого может быть достаточно.
Пример:
bk_color(BLACK)
См. также:
text_color, palette
bytes_to_int
Синтаксис:
include machine.e
a = bytes_to_int(s)
Описание:
Преобразует 4-х элементный ряд, состоящий из байтов, в атом. Элементы ряда s должны находиться в порядке, предусмотренном для 32-битных целых чисел на машинах 386+, т.е. младший значащий байт первый - s[1].
Комментарии:
Результат может быть больше, чем допускает тип integer, поэтому вы должны присваивать его значение атому.
Ряд s будет обычно содержать положительные величины, которые ранее были прочитаны оператором peek() из 4-х последовательных ячеек памяти.
Пример:
atom int32
int32 = bytes_to_int({37,1,0,0})
-- int32 равно 37 + 256*1 = 293
См. также:
int_to_bytes, bits_to_int, peek, peek4s, peek4u, poke
...
call
Синтаксис:
call(a)
Описание:
Вызывает подпрограмму на машинном языке, участок памяти с кодом которой начинается по адресу a. Подпрограмма должна запомнить содержимое всех регистров, которые она использует, а затем восстановить их в первоначальное состояние. Для обратной передачи управления интерпретатору Euphoria в этой подпрограмме должна быть предусмотрена инструкция RET (#C3).
Комментарии:
Вы можете подготовить участок памяти для подпрограммы и затем по этому адресу разместить байты машинного кода. Вы можете подготовить другие участки памяти для данных и параметров, которыми машинный код может оперировать. Адреса этих других участков могут быть размещены в машинном коде.
Пример программы:
demo\callmach.e x
См. также:
allocate, free, peek, poke, poke4, c_proc, define_c_proc
call_back
Платформа:
WIN32, Linux, FreeBS D
Синтаксис:
include dll.e
a = call_back(i)
Читать дальше