Что такое Delphi, эквивалентный «unsigned char» в C ++?

0

Как преобразовать следующий код C++ в Delphi? В частности, что можно isenable? Я пытаюсь выяснить, добавляется ли это значение.

unsigned char isenable = 0;
if (m_Isbuzzer)
{
    isenable = isenable | 0x01;
}
if (m_Isled)
{
    isenable = isenable | 0x02;
}
  • 0
    Спасибо, TLama, мне не хватает перевода: int data = _ttoi (m_Strtag.GetBuffer (0)); это значение в буфере или что означает этот код? user734781
Показать ещё 2 комментария
Теги:

1 ответ

4
Лучший ответ

В 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;
  • 0
    Спасибо за уделенное время. Не могли бы вы объяснить, что означает $ 01, это 1?
  • 3
    Вы читали статью Руди? Вы читали документацию по Delphi? $ Хорошо документирован. Это префикс, который указывает шестнадцатеричный литерал.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню