Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/88: Рейтинг темы: голосов - 88, средняя оценка - 4.83
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
1

Из шестнадцатеричной в десятичную

22.10.2012, 06:37. Показов 18371. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
У меня есть фаил, с которого я считываю числа по 2 байта. В этих 2ух байтах содержится число в шестнадцатеричной системе, но мне нужно вывести его в десятичной. Подскажите пожалуйста как это сделать на C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 06:37
Ответы с готовыми решениями:

Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную)
Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной...

Написать программу, которая переводит числа с шестнадцатеричной системы в десятичную
С использованием функции hex, а также без неё.

Перегруженые функции (перевод числа из шестнадцатеричной системы счисления в десятичную)
Помогите, в консольке нужно ) Написать функцию которая переводит числа из шестнадцатеричной...

Рекурсивная функция: перевод натурального числа из шестнадцатеричной системы счисления в десятичную
написать рекурсивную функцию для перевода натурального числа с шестнадцатеричной системы счисления...

39
86 / 81 / 28
Регистрация: 02.08.2011
Сообщений: 335
22.10.2012, 06:42 2
C++
1
*(uint16_t*)(&buf[0]);
где buf - unsigned char*

То?
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 07:21  [ТС] 3
Не чет не то.
Вот есть команда IntToHex - это я как понимаю десятичное число переводит в шестнадцатиричное
а можно наоборот его использовать HexToInt?
0
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
22.10.2012, 07:55 4
Цитата Сообщение от kiruhka Посмотреть сообщение
Не чет не то.
Вот есть команда IntToHex - это я как понимаю десятичное число переводит в шестнадцатиричное
а можно наоборот его использовать HexToInt?
я такое встречал когда в 9 классе изучал Дэлфи(Лазарус),
но это не Дэлфи(Лазарус), а С++ и поэтому на чистом С++,
таких операторов нету, но есть такие

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <stdlib.h>
int main()
{
    unsigned long int chislo;
    std::cin >> std::hex >> chislo;
    std::cout << std::dec << chislo << std::endl;
    
system("pause");
return 0;
}
если тебя другие интерисуют, например из 2-ичной в 10-ричную
то пиши так
C++
1
2
3
4
std::hex // Шеснадцатиричная система
std::dec // Десятичная система
std::oct // Восьмиричная система
std::bin // Двоичная система
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 08:44  [ТС] 5
а StrToInt не поможет, я где-то читала, что так можно
0
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
22.10.2012, 09:03 6
Цитата Сообщение от kiruhka Посмотреть сообщение
а StrToInt не поможет, я где-то читала, что так можно
я непойму, с английского на русский StrToInt(String To Integer) переводится как
строку в число, про то что ты спрашиваешь я незнаю.

Не по теме:

StrToInt я видел только когда в 9 классе изучал Дэлфи(Лазарус),
в С++ я такое только видел когда изучал Windows Form
но в чистом С++ я этого никогда не видел

0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
22.10.2012, 09:12 7
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
std::bin // Двоичная система
Нет такого в C++

Добавлено через 1 минуту
kiruhka, а в чем проблема считать это число и обычным способом перевести в десятичную систему?
0
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
22.10.2012, 09:34 8
Цитата Сообщение от Toshkarik Посмотреть сообщение
Нет такого в C++
немного увлёкся, кроме этого все остальные существуют и сними можно работать
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 10:32  [ТС] 9
вот код моей проги, посмотрите может что подскажете
C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//Ïåðåìåííûå
  unsigned char c1 = 0xff;
  unsigned char c2 = 0xff;
  unsigned char c3 = 0xff;
  unsigned char c4 = 0xff;
 
  unsigned short slovo = 0x0000;
  unsigned short X1 = 0x0000;
  unsigned short Y1 = 0x0000;
  unsigned short A1 = 0x0000;
  int p = 0,
      X,
      Y,
      A,
      i,
      j;
  int io[601][513];
 
 
//Îòêðûòèå ôàéëà
  f = fopen( "04_16_12_55.DAT", "rb" );
 
 
//Ïîèñê íà÷àëà çîíû äàííûõ
  fseek(f, 0, SEEK_SET);
  do
    {
      c4 = c3;
      c3 = c2;
      c2 = c1;
      c1 = fgetc(f);
 
      p++;
    }
  while( (c1 != 0x00) || (c2 != 0x00) || (c3 != 0x00) || (c4 != 0x00) );
  //Ïðîâåðÿåì åñòü ëè äàííûå
 
  fseek(f, p, SEEK_SET);
 
//Ñ÷èòûâàíèå äàííûõ
  //Îáíóëåíèå ìàññèâà
  for(i = 0; i<601; i++)
    {
      for(j = 0; j<513; j++)
        {
          io[i][j] = 0;
        }
    }
 
    while( !feof(f) )
      {
        fread(&slovo, sizeof(unsigned short), 1, f);
        if( (slovo & 0x0fff) == 0x8000 )
          {
            X1 = slovo;
            while( !(X1 & 0x0fff) == 0x8000 )
              {
                fread(&Y1, sizeof(unsigned short), 1, f);
                fread(&A1, sizeof(unsigned short), 1, f);
                X = }
                Y = } нужно чтобы они были десятичными типа int
                A = }
 
                io[X][Y] = A;
 
              }
          }
      }
 
fclose(f);
0
-=ЮрА=-
22.10.2012, 10:38
  #10

Не по теме:

kiruhka, приатач файл, с которого считываем данне, хочу для себя надо понять в каком виде у тебя в нём HEX идут

0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 10:45  [ТС] 11
вот файл с которого считываю
Вложения
Тип файла: rar 04_16_12_55.rar (42.3 Кб, 11 просмотров)
0
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
22.10.2012, 10:47 12
Во-первых, не пиши так

Цитата Сообщение от kiruhka Посмотреть сообщение
X = }
Y = } нужно чтобы они были десятичными типа int
A = }
пиши так
C++
1
2
3
X = // }
Y = // } нужно чтобы они были десятичными типа int
A = // }
Во вторых ты пробовала так?

C++
1
2
3
std::cout << std::dec << X; 
std::cout << std::dec << Y;
std::cout << std::dec << A;
0
Заблокирован
Автор FAQ
22.10.2012, 10:53 13
kiruhka, какой же это HEX файл
Дата: 16 04 2005
Время начала сеанса: 12:55
Трасса зондирования: Усолье / Торы
Режим: ВЗ ЛЧМ1
Длительность сеанса: 120 сек
Задержка: 0.00 мс
Начальная частота: 1000 кГц
Конечная частота: 13000 кГц
Скорость сканирования: 100 кГц/с
Ослабление вх. атт.: 0 дб
Полоса анализа: 500 Гц
Усиление АЦП: 4
Антенна: БС-2
Код оператора: МСМ
Оконная функция: Блэкмана-Хэрриса
Коэффициент порога: 2.60
Число совпадений: 1.0
Дискретность по частоте зондирования: 20.20 кГц

вот эта часть похожа на 2байтную запись чисел
А ' f └ З ╩ n ╦ n я g И/ И0 xH ИI qX gh Нm Рn mp СВ {Г fЙ n╖ o╗ Ь╝ О╜ {╥ ЖюА ! f ╕ Е ╩ \ █ Y ▄ d я Y b V' ^/ V1 i5 e9 lW Tg Th m rr nw _▓ e│ Д┤ Е╡ Д╕ d╣ r╗ f╝ i╥ z╙ }▌ z▐ iч tэ ию qя WЄА P o k К Z П X Р \ ╣ Z ║ b ├ V ╔ p ╩ O ╘ g ▐ ^ ¤ [ W [ Q U1 K2 `5 ~6 b7 _9 NA aN iX qY h] [a qb Vh Xq Зr `s rw V} ^~ [Л eМ `Х SЦ RШ Sз ^к qл [м k┤ l╡ ^╢ j╖ e╕ V║ ^╗ d╦ R╠ ^╙ d▌ k▐ hц zч `э Эю яА S } P И e Й d К M Ф T н _ о a ┬ r ├ V ╩ P ═ X ┘ g № s _ Q k6 ]9 o: w; Q< aJ SN SX РY nZ f] ]b {c pd Xe Sh Oq Вr [v |w bx fz lД hЕ ]М nк nл Y┤ d┐ X┴ [╙ rц iч bю MЁ d¤А L Ф Y в p г \ д P ╦ W ┘ R ┌ O ь S э _ № n i ] O R6 V: |; O< Y@ hF nG kY iZ [] [c od Lq Ov [w [y eГ yД Wк V│ ^┤ X╕ a╣ l╛ o┐ f┴ ^╙ _▄ i¤ \■А ^ b V Ь l ╧ d ╨ [ ┌ b ш M щ K ю l √ g № U ■ [ * i V l a _( X) N6 M: fF bG QQ RS Ls Yt Tv Z{ R| hГ UК RШ Xй dк O░ N╢ И║ j╗ k╛ |┐ w└ k┴ b┼ U╞ _╠ [═ `█ u▄ Qр \т ~у cф Vъ Rэ Yю Y¤ ^■А ! q Ы d Ь T ╢ i ╧ s ╨ ` ┘ r ┌ [ █ U щ _ я b ў o [ [ o c XS \a bi Uk ^t ev YГ hЭ _Ю bи hк l║ З╗ k╛ d┴ s█ r▄ iс {т kу cы fэА ! n ╛ T ╠ S щ l э ] ю q Ў y ў r r Ц Д _ V f` [i aq _y _П {Э [Ю Zи Wк f╝ [╛ a┘ lь dё oЄА V f Z Ш U ┐ W ╦ T с d т m у R ш S щ i ь А э R ю X Ў k ў _ В И y Р Э k X V Z$ h% Y6 L9 TF S[ T^ n_ d` ]k [o ^p Yy ]z m{ i| hЗ \И [й bк Q╝ g─ U┼ c═ X╪ U┘ V▌ lЁ qёА
W f V } Q ~ ] Ч X Ш O ▓ Q ╢ O ╖ L ╝ [ ┐ O ╚ h ╔ Y ╦ W ╧ T ╨ X у X ф U ш K ы T ю [ ё L Ў e ■ e * l X$ q% S4 U5 R: Me Yo k| U} QИ aХ TЧ M╝ j╜ ^┬ e├ a╠ n═ [╥ Y╙ \╪ \ш V√ e№ S¤А P Ч [ Ь Y Э P ╖ J ╚ a ╬ V ╤ Z ч b ї [ Ў P ■ | * _ ` \ I \ Y M L4 UT ]U UY Y[ Sw \} [Й [К NЧ GЩ Oе Z╝ f╜ O╩ g╦ q╠ W═ \╥ K╙ R╪ Vу \ч mш Kў d° d∙ Y¤А F T N Й O К O П I Р ^ ═ R ╬ F э U Ў ` ° R ∙ e R \ N S [ R I) L1 M5 V@ YA dV b[ j\ Mw My \z _К _Л MМ ]Ы ^а Vб Gе V╢ R╖ I╚ T┘ Q┌ I▐ Vф Vш Oю l° e∙ J¤А
S T S U O Й X К X █ V ▄ L я Y Ё X ° _ ∙ H M Q ^. K? GA MO KP QV \[ h\ Yx `y ]Л QМ KЦ RЯ eа qб _в Jе Yж N│ V┤ ^╢ O╖ W╟ Y┌ Tё e° e∙ U¤ d■А E В G Й J К Q Ш F ░ V ╚ P ╔ [ ┌ Z █ k Ё K ° H
E X V H$ `+ З. o/ D7 S8 T= V> PA PP IV EW L[ R\ Zg [h So KЖ NИ PЙ VЦ JЯ Rб [в bж Sз _и xй mк Tл O┤ D╢ ^╖ \╗ P█ Sу Mэ bё N· d√ a№ h¤ S■А O Й I К R е R ─ U ┼ e ╔ U ┘ U ┌ \ Ё u ё a Є F ° m k ^ O N$ Y* ]+ a- Х. В/ r= G> OA HJ ]P L] kn Ro IД ZЖ UЗ VИ PЙ UЦ XЧ Pж nй yк V╖ \╣ }║ Н╗ \╝ K╩ I╠ V┌ V█ Mу Fю Vё ZЄА E К C п K ▓ Z ╩ k ╦ \ ╠ Q р H ¤ X O V P L C# [- `. h< |= M> EI R] P^ `n Ht Kx FО KП VЧ Fж aк Pо Gп n╗ a╝ R╩ R═ D╤ W╒ T█ VёА > В ? Л N а F ▓ H ╢ ? ╖ R ╦ P ╠ @ ▐ R ▀ E р < D" J- :: R< S= HB L^ Ia Mb Sc Td De Cs < Oг Iд Bй Nк Lл Kм K┤ K╡ Z╩ V╦ ]╠ U═ R╒ ?▄ Xу ^ё B·А @ Б G В F О P П E й I к F ╢ F ╠ X ╨ K ╫ = э O% K& G1 L2 B: K@ iA XB LW RX YY UZ F^ Dr KЕ ?М AХ Zв K▒ I▓ S╢ E╖ <╚ Y╔ d╩ P╠ C╒ Xт oу Vф Mё FЄ A∙А Y ╨ a ╤ V ╫ N; X@ _A MQ GR IV WY TZ [] А^ Lh Бq ^r Hw KА OБ SМ QН fа vб Kв Mн _▒ ^▓ G╢ X╔ d╩ S╠ Hэ aю K°А M Ю H ╓ K Ё F ]< X= WQ KR y] а^ Л_ Mf xp Сq kr ax JВ KУ RЭ [а _б iн Zо Y▒ F╢ T╠ P╧ U╨ T╤ Z┌А M С G Э Q Ю J ╠ g ╒ H ╓ F ы S ё J Q' c( P= DR g_ O` Xq Yx Vy FФ SЫ ZЬ Oн [о \▒ K╢ O├ S─ P┼ K═ b╬ K╧ H╥ Y┌ l█ [▄ [р MїА E | V П b Р G ╖ N ╣ V ║ Y ├ K ─ V ╟ ^ ╘ t ╒ @ ╓ R C# P$ U' X( I6 I> G? C@ FG ER F| RЬ Kг Pо Hп P░ H╞ V╔ W╩ R╬ S╙ P┌ h█ S▄ \▀ [р Eс Qц Kш PЁ Iё O№А H | D В L П P ╟ I ▐ L ш C ь K C# G) C6 dS OT Fw H| CГ LН HС XЬ LЭ Fн O╟ F№А = } C ░ C │ F ╟ = ▄ m ч m ш D ь B _ P C) R* Y+ ?A [R fS GZ @[ Ap @v Hw IИ UО LП SТ HУ KЧ =Я ]м <н P╟ Cу Pх GцА A } @ а E ▒ B ╞ o ч c ш = ь ? ў ^ ■ I * C Y P R H! J" @$ B( n+ X, `1 M2 DA UJ KL HM IQ EY Ed Cf Pg Co Ep PИ JЙ BЦ Vй `к Xл Pм `▒ O▓ S╡ \┐ S└ L╟ ^╚ K╔ Xф Fь Eє HЇА U а U ┴ L ь l * [ U b q N J! a+ ^0 g1 _I [J KL XM Rb _c mh Hz IЦ Zа cб Oв _▒ T▓ t╛ u┐ S├ M╙ fф Iю ZЇА O Я W а P р ^ * N U l { H N! f0 Q1 U> O? RF Xb Yh Ii ey Uz KЛ XМ HЦ Uб ^д \е K╜ v╛ U┐ I├ N┼ K╬ l┌ wу nф Oю OЇА I О C Ц K Я O * G X E N H' T1 S> [? Fh Ii Ox zy bz HЛ Yд iе U├ F═ Z┘ Е┌ t█ e▄ ^▌ Yс Yт D*А I Т ? и H ┌ O P A W G F C@ Hp cq Zr Lz \Ф OХ Mж F╣ P├ E─ @╚ X╩ {╦ _╠ L╒ M╓ [┘ n▄ eр Yс Mы Yя M■А i U ^ e R K r G FЖ I╟ ]╩ u╦ Sя WЁ e№ V¤А @ в I ╙ L ╓ M √ R № T l M$ J% K/ K0 T1 R2 V< Y] H^ F} XЕ FЖ XЬ EЭ Iм L╜ _╛ M┐ ^╞ U∙ f· h√А H u B ╩ I ╙ C ╘ C ╒ O ╓ G р I с F ю L √ M № ]
L O H/ O2 k< h= V> EA F[ Q] U^ Fh Mi Qn Eo I} Y~ a [А ?В OЪ oЫ zЬ MЭ Lо Uп C╡ W╞ I╟ Hє hЇ P·А! X Q B t L u < а I ╓ @ ь Y э K ю @ ї R T
U U< M? d@ ?A E[ I] `^ Oa [b Sc Oh ^i Eo >z OА FВ BГ KХ _Ы bЬ AЭ Mо Sп H│ O┤ ?╡ Z╞ M╟ ?═ C╬ Gє fЇ [їА" r Q O э M `@ XA S^ Md Kj bБ KР NФ OХА# ▓ Q У R RL WM VN PW _d Me _Б TР Oх TцА$ Ф P Q ╞ R ^ ч Yc dИА% ! Ы Pk Q R \З БИ mЙА& & т Pы QБ R e S eпА' ) 4 PЗ Qя R u SА( ) f P Qh R б SА) % Ч Pа Q█ R ж S _А lУА* " ╖ P! Qu R № S ^УА+ % ╔ PШ Q R$ SА, ( ф P
Q| R- SА- $ ╨ Pз Qy Rл S d g; hr fР fСА. $ PФ Q Rб SА/ % ' Pp Q│ R╝ S К T e ┌ l ё В╔А0 - ∙ P▐ Q ╓ RV S to Л╔ v╩А1 ( Ё P Q
Э R╕ S q╔А2 % Ї PЁ Q
R SV TА3 ( о Pы Q ╥ R╓ SА T qm snА4 . Б P= Q╦ R╡ S ї T w└ }╨А5 1 , P; Qи R╘ SА6 - ░ Pж Q& RЗ Sn TX U ▀ VА7 / № Q} R' SЭ T, U) V ▒Ж РЗА8 1 Q R╔ S6 Tw U V ЯЕ ╝Ж аЗА9 . ╙ Q╫ R S! T. U ∙ VА: ) ╖ P Qj Rь Sп T░ U Р V oGА; + Qй Re S| T ┤ V б W  XА< - б Q╨ R S T я V │ W }eА= % n P  Q R╢ Sn T` U С V \ЮА> # ╡ QЪ R' S* T ╔ U ^ о k y r j, ej dkА? $ В Q} R─ S ~ T ~ V С X Х Y ~ Z n Ы ej mnА@ $ R' S| T у U V п WАA $ } P ╟ Qд RК SF Tў U[ V Б WАB $ ю R+ S╨ U7 V Н X YxАC & RЪ SB T0 Uы VI W с X q mАD $ щ QJ RА S▀ T{ U6 Vц W д YАE ' [ RЯ S TM UШ Vє W м X ╓ Y ║ ZАF - / S╘ Tl U VQ W ╩ Y ┼ ZАG % Н Q ╘ R S║ T х U Є V ф X Y ╓ ZАH " А Q · R у S┘ Tд U╜ V W7 X2 Y ў Z d [ ^ Ы a ЬАI ! ┌ RW S2 T░ U! V ╖ W ▀ X ╫ Z b [ \ Ы h ЬАJ ' ё RЧ S# TB Uг V' W ▓ X ▄ Y ы ZАK + а R2 Sы T═ U■ V╩ W ▌ X ╨ Y Z ╕ [АL ' f T Ud V WТ X Z д [ iщ hъАM ) R T▓ Uf Vc W@ Xe Y ╜ ZАN - ] TЭ U╖ VU WВ X ╒ YАO ( И R╖ T/ U┤ V ў X з Y Ю [АP $ ^ SЎ T# Uт V* W ╞ Xw Y Z [ К ] Щ ^АQ " M Sv TU U│ VЬ Wm XU Y! [ є \ │ ] и ^ x _ [ж k·АR ' М Rх TH U
; VD W╖ X6 Y╦ Z) [ Л \АS ) S T▓ U
О V╝ W< X▐ Yд Z Л б Г вАT # Ъ R└ S_ T* U╟ V╞ WЪ X║ Y ■ Z Я \ ╖ ] ╩ ^ н _ f д X l| Y} °АU " к R{ SU TA UТ VЯ Wь XA Y° Z ╤ [ Г \ ▄ ]# ^ _ Х ` ` a X а {ў o°АV $ Э RE Sц TК U V' W[ X} Yф ZД [ С \ ─ ^ ┼ _ k ` z г | дАW $ ╚ Rщ Sў T) U= V9 WЎ XC YИ Z@ [ \ w ^ } ` t e a f Ю г ╝ д Д е aР tСАX & Щ R` S T Uє VЪ W/ Xс Yф Zy [Y \8 ]E ^' _ ╤ ` h c Я д Г е zy lzАY ( f Q Ъ Re SБ T' UX V* W Э X╘ Y▌ ZP [╕ \Й ]* ^я _ ° ` К b г c } dАZ , S╩ TX U═ Vд WЫ Xт Y═ Zб [% \┐ ^Н _= ` Ч b Ш cА[ $ с TС U V
i WG X▐ Y─ ZМ [ \─ ]1 ^ б _? ` ╞ a r d n f l g Ф е п ж Ш з z лА\ ) # TШ U║ VJ W ╫ X Y Z╙ [╡ \ ] │ ^e _* ` } c г d q g Ц з | й Л к ~o uИА] ? ч S╟ T ╟ U= V ` Wъ XИ Y▐ Zъ [ \B ]x ^ъ _c ` ╕ dА^ 6 х S> T ╢ UM V║ W X╢ Yч ZС [╩ \* ]Ж ^м _ ■ a й d ┘ eА_ - M T7 U[ V┬ W} X Y═ Zж [Щ \ ] ^╧ _S a b Ю c Ш d Ф eА` &  R ┐ S| U╧ VЕ W( X
╛ Y
h Z┴ [┘ \№ ]Х ^а _▀ `5 b Е c w k e з Ы к Ь лАa ' } RU S╞ T╝ U ы VH W
X Y
это файл данных, не зная как он был записан выжать из него инфу будет проблематично и долго. Т.е часть файла писана просто строчно, а часть может и не HEX числа а байты какой то структуры(я склоене к этому варианту, т.к. поля X Y═ Zж уж явно на HEX не похожи Zж - да можеть быть 2-байтным числом X - не думаю. Короче нужна структура файла
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 10:56  [ТС] 14
Ну мы же открываем его в бинарном виде, а во вторых есть прога которая читает его, массив пишет не так как надо и данные читаются не по словам а по байтам, я пытаюсь переделать .
0
Заблокирован
Автор FAQ
22.10.2012, 11:05 15
Цитата Сообщение от kiruhka Посмотреть сообщение
Ну мы же открываем его в бинарном виде, а во вторых есть прога которая читает его, массив пишет не так как надо и данные читаются не по словам а по байтам, я пытаюсь переделать .
- смотри ещё раз твой файл - это смешанный файл данных, вначале идут просто char- инфы, потом идёт не массив чисел как ты думаешь, а скорее всего запись структур с определённым форматом. Не зная что находится в полях этих структур, считать инфу проблематично

C
1
2
3
4
5
6
7
8
struct SomeStruct
{
     DWORD dwParam1;
     DWORD dwParam2;
     int iParam;
     double dParam;
    ....
};
- это просто пример чтобы ты понял - не зная в формата структуры, твои попытки передалать всего лишь гадание на кофейной гуще. Ты просто видишь в файле надор бачтой кучи структур которые были записаны программой в файл. Вот скажем есть 4 байта инфы abcd что это 4-ри чара, два WORD или 1 DWORD?Я потмоу и прошу у тебя указать структуру файла, либо покажи код который в файл пишет
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 11:11  [ТС] 16
Я и не думаю, что там массив, массив надо создать самой. если смотреть в Far'е в Hex то все понятно. Структуру я знаю, но объяснить её сложно.
Строки мы пропускаем они мне не нужны, данные начинаются с начала закорючек.
Каждые 2 байта это нужное мне число в шестнадцатиричном виде, только мне надо записать его в массив в виде десятичного
0
Заблокирован
Автор FAQ
22.10.2012, 11:24 17
Цитата Сообщение от kiruhka Посмотреть сообщение
Структуру я знаю, но объяснить её сложно.
- ну вот без её знания считать простому обывателю инфу крайне затруднительно

Цитата Сообщение от kiruhka Посмотреть сообщение
Каждые 2 байта это нужное мне число в шестнадцатиричном виде, только мне надо записать его в массив в виде десятичного
- 2 байта начиная с какой позиции?
Вам всё понятно потому, что вы знаете как лежат данные, а лично мне не понятно как они лежат. Считать в int с конвертом из HEX в DEC очень легко - вот так
C
1
2
int buffer;
fscanf(f,"%X",&bufer);
но с какой позиции это делать не ясно, а вы явно экономите не пояснениях
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 11:35  [ТС] 18
Попробую объяснить
Сначала идет всякая ненужная инфа, если смотреть в hex то она идет до тех пор пока не встретятся 4 нулевых байта. Начиная со значения 80 01 начинаются данные.
Данные представляются следующим образом(объясняю на начале файла)
80 01 - это координата Х=1, там могло быть и 00 01, но 80=это просто метка, чтобы отличить где начинается следующий Х
Далее идет чередование значений Y и A:
Y=00 01
A=00 27
Y=00 02
A=00 66 и так далее, до следующего Х=80 02
Надеюсь понятно.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.10.2012, 11:50 19
-=ЮрА=-, можете здесь почитать переписку Как считывать информация с файла по байтам
0
1 / 1 / 3
Регистрация: 08.09.2009
Сообщений: 103
22.10.2012, 14:05  [ТС] 20
Как считывать, я уже поняла, мне надо перевести считанное в десятичнуое число, чтобы 00 01h превратилось в 1d, а 00 27h в 39d
0
22.10.2012, 14:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2012, 14:05
Помогаю со студенческими работами здесь

Перевод из шестнадцатеричной в десятичную
Не правильно производит вычисления. var oct : string; dec : longint; i,j : byte; er,k :...

Перевод из шестнадцатеричной системы в десятичную
text = textbox1.text.Substring(14, 2); num = (long)Convert.ToInt32(text, 16); Тут text = 11,...

Подпрограмма из шестнадцатеричной системы в десятичную
Прошу помочь написать программу на паскале которую нужно разбить на подпрограммы. Цель такова - дан...

из шестнадцатеричной системы счисления в десятичную
написать программу переводящую целое число из шестнадцатеричной системы счисления в десятичную


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru