0
- 30.01.2013 - 14:25
|
Имеем arr of byte Имеем разбитие числа от 0 до 65535 в тексте на два байта arr[0] := lo(StrToInt(Edit1.Text)); arr[1] := hi(StrToInt(Edit1.Text)); Пытаемся сложить обратно в кучу Edit1.Text := IntToStr( (arr[1] and not $30) * 10 + (arr[0] and not $30) ); или Edit1.Text := IntToStr(arr[1] shl 8 or arr[0]); До 255 отрабатывает нормально, дальше загон. Подозреваю - потому что int это 4 байта, мне нужно конвертить word. Но нет такого - StrToWord в Лазарусе.. | |
1
- 30.01.2013 - 15:32
|
Word( явное приведение к типу перед манипуляциями по вытаскиванию hi/lo и обратному преобразованию. Преобразование: Edit1.Text := IntToStr(Word(arr[1] shl 8 or arr[0])); | |
2
- 14.02.2013 - 19:19
|
1-Фанат NASCAR > arr[1] shl 8 у тебя уже станет 0. Биты за пределы байта уйдут. WORD(arr[1] shl 8) or arr[0] WORD(arr[1]) shl 8 or arr[0] Правда думаю - ниразу уже не актуально. | |
3
- 15.02.2013 - 00:49
| 2-ELEA >ах да, в программе поправил это оказыается | |
| Интернет-форум Краснодарского края и Краснодара |