![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Ввести целое число типа LONGWORD. Получить из каждого байта символ, соответствующий этому числу. Алгоритм преобразования оформить в виде функции.
Исходное число и результат вывести в символьной, двоичной и десятичной форме. |
#2
|
|||
|
|||
![]() Неубиенная тема!!!!!!!!!!!
Я уже раза 3 здесь на форуме отвечал на этот вопрос. Отвечаю в очередной раз (и думаю что не последний) В следующем семестре все повторится.... Здесь 2 функции, переводящие числа по любому основанию (M) и обратно Код:
const Symb:array[0..15] of char='0123456789ABCDEF'; function StrToIntM(s:string;M:word):int64; var i:integer; begin s:='0'+Trim(s); Result:=0;i:=1; while (i <= Length(s)) and (s[i] in [Symb[0]..Symb[M-1]]) do inc(i); if i > Length(s) then for i:=1 to length(s) do case s[i] of '0'..'9':Result:=Result*M + ord(s[i])-48; 'A'..'F':Result:=Result*M + ord(s[i])-55; 'a'..'f':Result:=Result*M + ord(s[i])-87; end //case else Result:=-1; end; function IntToStrM(x:int64;M:word):string; begin Result:=''; repeat Result:=Symb[x-M*(x div M)]+Result; x:=x div M; until x <= 0 ; end; |
#3
|
|||
|
|||
![]() Да тут немного другое нужно:
Код:
const mByte : Byte = 255; var I : Integer; W : DWORD; // 4 байта B : Array [0..3] Of Byte; begin For I := 3 DownTo 0 Do Begin B[i] := W And mByte; W := W shr 8; End; S := ''; For I := 0 To 3 Do S := S + Chr(B[i]); end; ну а десятичную и двоичную формы сам сообразишь как. |