|
|
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Hi to all есть гребанный файл, бинарный который с него нужно считать 10 байт, причем в этих 10-ти байтах нахотидся целое число. как их считать ?? в int и long не помещяется. какие мысли на этот счет ? Thanks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 11:17 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
массив, или short+long+long ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 11:49 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Zedaс него нужно считать 10 байт, причем в этих 10-ти байтах нахотидся целое число.в каком формате это число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 12:59 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
miksoft Zedaс него нужно считать 10 байт, причем в этих 10-ти байтах нахотидся целое число.в каком формате это число? Там десятичное число ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 13:58 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Что вы собираетесь с ним делать. Наибольшее целое в С - long long - 8 байт. Возможно, имеет смысл, считать его в массив и преобразовать к double? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 13:58 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
ZedaТам десятичное число Двоично десятичное или все-таки десятичное? Я так понимаю, у вас число в виде строки. Тогда считайте на массив символов и преобразуйте к long (atol). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 14:01 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
AkhЧто вы собираетесь с ним делать. Наибольшее целое в С - long long - 8 байт. Возможно, имеет смысл, считать его в массив и преобразовать к double? А как его в массив считать ? Тут вот такое написано : автор(Datatype: packed BCD, right-padded with "0xF") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 14:52 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
ZedaТут вот такое написано : автор(Datatype: packed BCD, right-padded with "0xF") Значит у тебя, все-таки, двоично-десятичное. 1. счтываешь в массив, например функцией read. 2. потом берешь контейнер, типа long и обнуляешь его. 3. Если у тебя старший разряд первый, то берешь по байту с начала массива, умножешь на 10 и прибовляешь следующий. 4. Если у тебя старший разряд последний, что более вероятно, то делаешь то же самое но наоборот, т.е. кладешь в контейнер последний байт, умножаешь на 10, прибавляешь предпоследний, опять на десять, прибавляешь еще предыдущий и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 15:19 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
И еще один вопрос: а нафига вот это автор"0xF" нужно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 15:54 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
packed BCD вроде бы подразумевает ДВЕ десятичные цифры в байте ZedaИ еще один вопрос: а нафига вот это автор"0xF" нужно ? А ты это у автор а, которого цитируешь, спроси :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 16:00 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
ZedaИ еще один вопрос: а нафига вот это автор"0xF" нужно ? Я так понял, что имелось в виду в одном байте - одна цифра, что как правельно, заметил Barlone, запакованное двоично-десятичное число хранит в одном байте 2-е цифры. Можит и хотели написать и другое, что надо, мол, этой маской выделять цифры и не забывать сдвигать. Вообщем, гадание на кофейной гуще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 16:30 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
ZedaИ еще один вопрос: а нафига вот это автор"0xF" нужно ? Вероятнее всего это говорит о том, что значащие разряды сдвинуты в лево. А справа дополнены 0xF до необходимой длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 16:58 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Так похоже, что число в BCD формате, то: а) формат предполатгает что1 десятичное число занимает 4 бита, т.е. 123 будет выглядеть: [0|0][0|0][0|0][0|0][0|0][0|0][0|0][0|0][0|1][2|3] сконвертить самому б) сконвертить через asm читать asm, там должно быть конвертирование. брать массив байт(char) идти в асм, пробовать конвертить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:04 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
А может это дворик был? ;) Если есть пример файла, то проще определить по нему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:08 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Aklin....asm, там должно быть конвертирование.... ассемблер - набор инструкций проца... просветите пожалуйста - какая команда проца(и тип пожалуйста) - занимается "конвертацией" ??? заранее сэнкс (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:09 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
kolobok0 Aklin....asm, там должно быть конвертирование.... ассемблер - набор инструкций проца... просветите пожалуйста - какая команда проца(и тип пожалуйста) - занимается "конвертацией" ??? Помниться, что-то по работе с этими числами есть. Сейчас поищу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:20 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
AkhВоот-с. Коррекции. Арифметические действия над неупакованными BCD-числами дык конвертация(чего и куда тогда?) или коррекция ? :) коррекция (asm)применяется после операций сложения над BCD числами..."упакованные-не упакованные" это от лукавого...процу похрену... другими словами Вы можете сложить 51h с 69h и вместо BAh получить 120h что при представлении в BCD и есть истина... сама команда должна следовать сразу после сложения (либо сложения с переносом)... Пример... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. теперь возвращаемся к баранам... ну и каким лешим Вы рекомендуете это ? с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:42 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
kolobok0 теперь возвращаемся к баранам... ну и каким лешим Вы рекомендуете это ? автор * сложение неупакованных BCD-чисел; * вычитание неупакованных BCD-чисел; * умножение неупакованных BCD-чисел; * деление неупакованных BCD-чисел; * сложение упакованных BCD-чисел; * вычитание упакованных BCD-чисел. Да, вроде, преобразования нет. Сейчас уже не помню. Давно это было, если бы про BCD не напомнили, так и не вспомнил бы вообще. ЗЫ: Если почитать топик, то моих рекомендаций по конвертированию в асме там нет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:53 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Akh....ЗЫ: Если почитать топик, то моих рекомендаций по конвертированию в асме там нет. :) я просто о том, что Вы дали наименее трудное правильное решение..в азм - то явно перебор... с уважением (круглый) ЗЫ Про фразу с эфами - действительно просче будет взглянуть на пример упаковки... Сдаёться мне, что в каждый байт запхнули по одной тэтраде, с прижимом в право... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 17:59 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
kolobok0Про фразу с эфами - действительно просче будет взглянуть на пример упаковки... Сдаёться мне, что в каждый байт запхнули по одной тэтраде, с прижимом в право... Имхо, автор топика уже ушел асм изучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2006, 18:09 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
если считать что в c(10байт) число, то: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 11:41 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Aklinесли считать что в c(10байт) число, то: Код: 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. Код: plaintext 1. 2. Я считываю эти десят байт в массив по байту, далее для разбиваю каждый элемент этого массива на две тетрады Код: plaintext 1. 2. вроде как должно получится нормальное число. Так ни фига не получается не сходится почему-то. Вообще у кого небудь есть ссылка на доки по работе с BCD на С++ или С. Thanks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 19:10 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Zedaразбиваю каждый элемент этого массива на две тетрады Код: plaintext 1. 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 22:06 |
|
||
|
Помогите считать 10 байт ...
|
|||
|---|---|---|---|
|
#18+
Zeda Aklinесли считать что в c(10байт) число, то: Код: 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. Код: plaintext 1. 2. Я считываю эти десят байт в массив по байту, далее для разбиваю каждый элемент этого массива на две тетрады Код: plaintext 1. 2. 3. вроде как должно получится нормальное число. Так ни фига не получается не сходится почему-то. Вообще у кого небудь есть ссылка на доки по работе с BCD на С++ или С. Thanks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2006, 10:19 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33919691&tid=2030667]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 552ms |

| 0 / 0 |
