Является ли «слово» от Delphi эквивалентным типом данных для «char» в Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Является ли «слово» от Delphi эквивалентным типом данных для «char» в Java?

Сообщение Anonymous »

В Delphi слово представляет собой незначную переменную 16 бит (

Код: Выделить всё

0..65535
). 1
В Java переменная char - это 16 -битный символ Unicode (

Код: Выделить всё

0..65535
). 2
У меня есть следующий код в Delphi:

Код: Выделить всё

procedure TForm1.ReadHoldRegisters(var lst: TList;
deviceaddr: byte;
RegisterAddress,
RegisterLength: word);
begin

lst.Add(deviceaddr);
lst.Add(3);
lst.Add(RegisterAddress div 256);
lst.Add(RegisterAddress mod 256);
Add_CRC16(lst);
end;

procedure TForm1.Add_CRC16(var Data: TList);
var
CRC16Lo, CRC16Hi, CL, CH, SaveHi, SaveLo: byte;
Flag: Integer;
b: byte;
begin
CRC16Lo := $FF;
CRC16Hi := $FF;
CL := $1;
CH := $A0;

for b in Data do
begin
CRC16Lo := CRC16Lo Xor b;
For Flag := 0 To 7 Do
Begin
SaveHi := CRC16Hi;
SaveLo := CRC16Lo;
CRC16Hi := CRC16Hi Div 2;
CRC16Lo := CRC16Lo Div 2;

If ((SaveLo And $1) = $1) Then
Begin
CRC16Hi := CRC16Hi Xor CH;
CRC16Lo := CRC16Lo Xor CL;
End;
End;
end;
Data.Add(CRC16Lo);
Data.Add(CRC16Hi);
end;
< /code>
И это эквивалентно Java: < /p>
    public void ReadHoldRegisters(List lst,
byte deviceaddr,
char RegisterAddress,
char RegisterLength)
{
lst.add(deviceaddr);
lst.add((byte) 3);
lst.add((byte) (RegisterAddress/256));
lst.add((byte) (RegisterAddress%256));

Add_CRC16(lst);
}

private void Add_CRC16(List Data)
{
char  SaveLo, SaveHi;
int flag;

char CRC16Lo =  0xFF;
char CRC16Hi =  0xFF;
char CL      =  0x1;
char CH      =  0xA0;

// beginning of do for in
for (Byte b : Data)
{
CRC16Lo = (char) ((CRC16Lo) ^ b);
for(flag=0;flag
Тем не менее, когда я печатаю значения, выполняя < /p>
for (Byte b : lst)
S = S + String.format("%1X ", b);
Я получаю 01 03 00 20 f0 в Delphi и 1 3 0 D8 D9 в Java.
Предполагая, что char и word являются эквивалентными переменными, что не так с RegisterDress и registerlength

Подробнее здесь: https://stackoverflow.com/questions/281 ... ar-in-java

Вернуться в «JAVA»