|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Здравствуйте уважаемые! Подскажите, как по кодам в четырех последовательных байтах восстановить целое число. Нужно также изменить это число и записать в эти же байты. Заранее благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 19:40 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
n4*65536^2+n3*65536+n2*256+n1 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 19:45 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Спасибо! А если чило со знаком, то кажется байты как-то переставлены или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 19:47 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Все нормально, спасибо еще раз! А может быть подскажете обратный перевод целого в содержимое байтов? А то нет под рукой литературы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 21:30 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Ваш вопрос был прост и не уточнен для чего, потому я постарался также просто ответить и в общем Для каждого представления типа Long, Integer (4байта явно не integer), single, Currency есть свои правила. Я предложил общий вариант, который действует например для команд типа GOTO_на_метку в ассемблер представлении (когда нет отрицательных чисел). Если Вас интерисует распознавание баз данных, и редактирование чужой б/д, в этом случае сделайте эксперементальную свою и увидите как создаются отрицательные числа. Принцып тот же, только на мое мнение максимальное число, наверное, разделено на два, хоть я может и не прав. Обычный Boolean создается из двух байт, лично я пользуюсь в базе вместо Boolean обычным Byte. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 21:33 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
'Обратный способ из четырех строчек: условие и деление или просто деление ' 'n4*65536^2+n3*65536+n2*256+n1 'обратно будет так: 'Suma - наше число Suma = inputbox("...","...") n4=Suma \ 65536^2 n4 будет у нас целым числом поскольку мы его делили знаком "\", тоесть тоже самое что n4=int(Suma /65536^2) ищем тогда остаток Suma=Suma-(n4*65536^2) ' надеюсь понятно n3=Suma \ 65536 Suma=Suma-(n4*65536) n3=Suma \ 256 n4=Suma-(n4*256) ' Проверте сами. Я без редактора на ходу stop ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 21:44 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Большое спасибо за ответ. Это я делаю программу "сложения по ширине" bmp - файлов. А там требуется извлечение из байтового массива целых чисел - ширина, высота, длина файла и растра. А потом запись данных нового файла обратно в байты. К счастью, там только целые без знака, так что сложностей со знаками и типом данных нет. В общем-то как перевести число в содержимое байтов я уже догадался (а может быть и вспомнил.) Спасибо, Андрей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 21:46 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Поспешил (копировал) Suma = ваше число n4=Suma \ 65536^2 Suma=Suma-(n4*65536^2) n3=Suma \ 65536 Suma=Suma-(n3*65536) n2=Suma \ 256 n1=Suma-(n2*256) stop ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 21:50 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Если бы ТС считывал заголовок Bmp-файла как структуру (как нормальные люди), не нужно было бы заниматься такой чепуховиной.. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2011, 22:19 |
|
Как по кодам в байтах восстановить число
|
|||
---|---|---|---|
#18+
Андрей159n4*65536^2+n3*65536+n2*256+n1Это неправильно. Во-первых, не ^2, а *256, а во вторых, это не учитывает возможности n4>127. Игорь С, можно воспользоваться оператором LSet: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2011, 00:18 |
|
|
start [/forum/topic.php?fid=60&msg=37137722&tid=2158925]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 141ms |
0 / 0 |