1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
1 | |
Преобразование типа byte в десятичный08.03.2011, 22:34. Показов 5266. Ответов 34
Метки нет (Все метки)
Здравствуйте!
Читаю файл побайтово, записал в переменную byte a[2] соответственно 2 байта, которые находятся в 16ричной системе. В этих 2х байтах лежит размер. Так вот, мне нужно узнать этот размер в десятичной системе счисления. Подскажите пожалуйста как это сделать. Например, число 4F12h. Есть ли какая-нибудь стандартная функция. Калькулятором перевести могу, но нужно в коде на с++. Спасибо.
0
|
08.03.2011, 22:34 | |
Ответы с готовыми решениями:
34
Глупый человек ищет умную мысль при сравнения массива типа byte с маскй типа byte. преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода Как перевести byte[] или переменную типа IntPtr к типу byte[] (ассемблерные инструкции)? Преобразование двоичного кода в двоично-десятичный (PIC16F84) |
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
08.03.2011, 22:39 | 2 | |||||
Ortistx, в двух байтах может быть только два символа
и почему там размер в 16ной системе? Добавлено через 1 минуту
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
08.03.2011, 22:40 [ТС] | 3 |
alex_x_x, я читаю файл так: fread(a, 1, 2, f);
Насколько я понял, данные записываются туда в 16ричной. Т.е. если мы представляем число в 16ричной, то в 2 байта может поместиться FFFFh, не так?
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
08.03.2011, 22:43 | 4 |
Ortistx, да, но это будут не символы
в символы они превратятся при выводе
0
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
|
08.03.2011, 22:44 | 5 |
Ortistx, зависит от того, что записано
Если записано например число инт, то его можно считать как 4 байта.
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
08.03.2011, 22:45 [ТС] | 6 |
Т.е. если я делаю так: byte a; fread(a, 1, 2, f); что будет в a?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
08.03.2011, 22:52 | 7 |
Ortistx, наверно зависит от того что вы читаете?
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
||||||
08.03.2011, 22:58 [ТС] | 8 | |||||
я читаю jpeg-файл.
Насколько я знаю, все файлы состоят из нулей и единиц. Jpeg-файл тоже. Мне нужно прочитать этот файл побайтово. Для удобства jpeg-файл представляют в 16ичной системе. Собственно мне нужно обрабатывать эти 16ичные данные, а конкретно надо обработать определенные 2 байта, в которых содержится число. Я эти байты нашел. Теперь необходимо достать из них число в десятичной форме. Читаю я так:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||||||||||
08.03.2011, 23:12 | 9 | ||||||||||
memcpy мне кажется самое удобное и правильное средство
1
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
08.03.2011, 23:30 [ТС] | 10 |
Спасибо.
А в тексте, который я привел, что же все-таки лежит в a?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
08.03.2011, 23:33 | 11 |
там лежат два байта считанных из файла =)
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
08.03.2011, 23:36 [ТС] | 12 |
а в каком формате?
или суть в том, что там лежат 2 байта, а то в каком формате - зависит от того, как мы будем читать?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
11.03.2011, 20:11 | 13 |
Ortistx, уясните что такое формат
все в памяти компьютера представлено единообразно можно считать, что там хранятся числа вопрос в их интерпретации и формате вывода ну я не знаю http://www.infosgs.narod.ru/quest_11.htm когда вы выполняете чтение, вы получаете то что там лежало, а формат он пренципиален только для вывода
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
11.03.2011, 20:15 [ТС] | 14 |
alex_x_x, спасибо, это понял.
Так вот вопрос в том, что некоторые функции работают только с определенным форматом данных. Вот у меня и стоит задача из формата byte[2] перевести это в число, которое можно будет использовать потом для разных задач, в том числе для выделения памяти.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
11.03.2011, 20:17 | 15 |
ну это уже третье дело
какой смысл преобразования и в каком контексте?
0
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
||||||
11.03.2011, 20:23 [ТС] | 16 | |||||
Я читаю файл. В файле встречается 2 байта, в которых записан размер некого участка в байтах. Т.е. например может быть такое:
0002h или такое: 1000h я пытаюсь прочесть эти 2 байта из программы так:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||||||||||
11.03.2011, 20:42 | 17 | ||||||||||
1
|
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
|
||||||
11.03.2011, 20:43 | 18 | |||||
тогда уж short. Потому-что инт имеет размер 4 байта.
Вам вот такой вариант не подойдёт ?
1
|
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39
|
|
11.03.2011, 20:56 [ТС] | 19 |
GAME, не работает.
Вывожу cout<<num; выдает 0012FF18 Т.е. выдает почему-то 4 байта вообще. alex_x_x, с memcpy получилось. Хорошая функция. Она может работать с любыми типами данных?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
11.03.2011, 20:57 | 20 |
Ortistx, да более того она вообще желаем способ работы , те как мне кажется всегда правильно работает с big endian/little endian итп
0
|
11.03.2011, 20:57 | |
11.03.2011, 20:57 | |
Помогаю со студенческими работами здесь
20
Преобразование BYTE C++ Преобразование типа или преобразование типа указателя ? Преобразование String в Byte C++ Преобразование данных в byte[] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |