|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.12.2016, 19:58 | #1 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Вопрос по функции перевода числа
Интернет перевернул подходящего не нашел ,как перевести любое целое число (именно в 4 байта) и обратно перевести именно (из 4 байт в целое число) ?
type Tmas=record bf:[0..3] of array; end; function(value:integer):Tmas; var ms:Tmas; begin ms.bf[0]:=value shl 8; ms.bf[1]:=value shl 8; ms.bf[2]:=value shl 8; ms.bf[3]:=value shl 8; result:=ms; end; Примерный код . Спасибо. |
24.12.2016, 20:11 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
24.12.2016, 20:21 | #3 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Спасибо за помощь . А обратно как в число ?
|
24.12.2016, 21:41 | #4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,869
|
Код:
Присваиваешь значение I - видишь результат в массиве. |
24.12.2016, 22:11 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Тоже можно, не считая того, что байты в массиве будут соответствовать тому, как переменная в памяти размещается - единичка в массиве будет 01, 00, 00, 00
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
25.12.2016, 00:50 | #6 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,869
|
Значит ТС должен изучить тему Порядок байтов и разобраться самому что ему надо.
|
25.12.2016, 08:08 | #7 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Нашёл на просторах интернета .
function ConvertToFloat(ms:Tmas): integer; var Data: Array[0..5] of Byte; S: String; i: Integer; begin S := ''; for i := 0 to 3 do begin S := S + format('%.2x', [ms[i]]); end; result := StrToInt64('$'+S); end; Работает возвращает то число которое было задано Спасибо всем за ответы и помощь. Последний раз редактировалось АНАТОЛИЙ249; 25.12.2016 в 08:36. |
25.12.2016, 08:59 | #8 |
Пользователь
Регистрация: 05.02.2007
Сообщений: 91
|
Вот обе функции:
type Tmas = array [0..3] of Byte; Pmas = ^Tmas; function intobyte4(value:integer): Tmas; var i,k: Integer; ms: Tmas; p: Pmas; begin p:=@value; for i:=0 to 3 do ms[i]:=p^[3-i]; result:=ms; end; function ConvertToFloat(ms:Tmas): integer; var Data: Array[0..5] of Byte; S: String; i: Integer; begin S := ''; for i := 0 to 3 do begin S := S + format('%.2x', [ms[i]]); end; result := StrToInt64('$'+S); end; Спасибо всем за помощь и ответы вопрос можно закрывать. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перевода целого числа в римскую систему счисления | enternity | Помощь студентам | 2 | 17.10.2011 01:37 |
Программа перевода числа из десятичного в двоичное. | MiraJe | Qt и кроссплатформенное программирование С/С++ | 7 | 16.01.2011 14:11 |
функции перевода | Irenka | Общие вопросы C/C++ | 4 | 30.05.2010 00:29 |
Программа перевода числа из 10 СС в 2 СС | fs444 | Общие вопросы C/C++ | 12 | 25.02.2010 08:10 |
Алгоритм перевода числа в hex text. | Ivan_32 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 02.12.2008 21:36 |