Как преобразовать следующий код C++ в Delphi? В частности, что можно isenable
? Я пытаюсь выяснить, добавляется ли это значение.
unsigned char isenable = 0;
if (m_Isbuzzer)
{
isenable = isenable | 0x01;
}
if (m_Isled)
{
isenable = isenable | 0x02;
}
В Windows, char
- это 8-битный тип, а unsigned
означает, ну, без знака. Как правило, unsigned char
используется для двоичных байтовых ориентированных данных. Так что map unsigned char
в Byte
. Отличная статья, которую написал Руди Велтиус, " Ловушки конвертирования", содержит эту информацию.
|
оператор побитовое ИЛИ. Операторы C++ перечислены и хорошо документированы здесь: http://en.cppreference.com/w/cpp/language/expressions#Operators В Delphi побитовое ИЛИ является оператором or
.
Таким образом, код будет:
var
isenable: Byte;
....
isenable := 0;
if IsBuzzer then
isenable := isenable or $01;
if IsLED then
isenable := isenable or $02;
$
Хорошо документирован. Это префикс, который указывает шестнадцатеричный литерал.