Как передать номер слова в ширину?

Прежде всего, мне жаль, что я не могу лучше описать свою проблему.

У меня есть var wstr : Widestring ; wo : Слово ; begin wo : = 65025 ; wstr : = Widestring ( wo ); wo : = 10000 ; wstr : = wstr + Widestring ( wo ); конечный номер Chr (), который равен 0xFE01 или 11111110 00000001 в двоичном формате. И я хочу передать значение wstr WideChar => 11111110 00000001.

Я обнаружил, что использование typecast не работает.

И еще один вопрос здесь. Если я хочу добавить еще один номер, например 10000 => 0x03E8, как это сделать. Поэтому в результате WideChar (wo) должен ссылаться на значения 0xFE01 0x03E8.

И затем, как получить одни и те же цифры от Word до слова назад?

WideString

Редактировать:

Я даю еще один, более простой пример того, что я хочу ... Если у меня есть значение слова 49, которое равно ASCII-значению 1, тогда я хочу, чтобы wstr был «1», который является b00110001 в двоичных терминах. Я хочу скопировать бит из номера слова в строку.

delphi,numbers,widestring,

1

Ответов: 2


3 принят

Похоже, вы хотите интерпретировать слово как единицу кода UTF-16. В Unicode Delphi вы будете использовать эту 65025функцию. Но я подозреваю, что вы используете ANSI Delphi. В этом случае бросить WideStringс 65025.


0

Вы бросаете a Wordв Word. В Delphi кастинг обычно не конвертируется, поэтому вы просто переучитываете значение WideStringкак указатель (a WideString- указатель). Но 65025не является допустимым значением указателя.

Вам придется явно преобразоватьWord к WideString, например , с помощью функции , как это (непроверенной, но должно работать):

function WordToBinary(W: Word): WideString;
var
  I: Integer;
begin
  Result := '0000000000000000';
  for I := 0 to 15 do // process bits 0..15
  begin
    if Odd(W) then
      Result[16 - I] := '1';
    W := W shr 1;
  end;
end;

Теперь вы можете сделать что-то вроде:

wo := 65025; 
wstr := WordToBinary(wo);
wo := 10000;
wstr := wstr + ' ' + WordToBinary(wo);

Для обратного вам придется написать функцию, которая преобразует из WideString в Word. Я оставлю это упражнение вам.

Опять же, вы не можете бросить. Вам придется явно конвертировать. В обе стороны.

Дельфи, цифры, WideString,
Похожие вопросы