Przetwarzanie napisów

0

Mam do napisania program, który zamienia słowo napisane szesnastkowo na liczbę w systemie dziesiętnym... Czy ktoś mi pomoże? Bardzo potrzebuję pomocy.

0

A co już sam napisałeś? Nikt tu nie zrobi tego za Ciebie.

Choć, zlituję się. Nie znam języka C+ więc dam w Ruby:

puts $_.to_i(16) while gets
0

Niestety nic, nie mialem czasu aby sie przygotowac, organizacja Juwenaliów... bardzo proszę o pomoc.

0

W C+

0

Hmmmm w takim razie nie nazwał bym tego pomocą, a odwalaniem roboty za Ciebie. Ale bez przesady, to zajmie z 5' więc to, że organizowałeś Juwenalia Cię nie tłumaczy. Zanim to przeczytasz powinieneś już był mieć to zrobione. To nie zajmuje aż tak dużo czasu.

0

Jestem teraz na zajęciach, dostałem to zadanie i nie potrafie go zrobić, przyznaje się ze sie nie przygotowalem, jesli nie dostane pomocy, trudno, bede mogl byc zly tylko na siebie. Dziekuje za jakakolwiek pomoc

0

To pomogę trochę:

   0 =    0
   1 =    1
   2 =    2
   3 =    3
   4 =    4
   5 =    5
   6 =    6
   7 =    7
   8 =    8
   9 =    9
  10 =    a
  11 =    b
  12 =    c
  13 =    d
  14 =    e
  15 =    f
  16 =   10
  17 =   11
  18 =   12
  19 =   13
  20 =   14
  21 =   15
  22 =   16
  23 =   17
  24 =   18
  25 =   19
  26 =   1a
  27 =   1b
  28 =   1c
  29 =   1d
  30 =   1e
  31 =   1f
  32 =   20
  33 =   21
  34 =   22
  35 =   23
  36 =   24
  37 =   25
  38 =   26
  39 =   27
  40 =   28
  41 =   29
  42 =   2a
  43 =   2b
  44 =   2c
  45 =   2d
  46 =   2e
  47 =   2f
  48 =   30
  49 =   31
  50 =   32
  51 =   33
  52 =   34
  53 =   35
  54 =   36
  55 =   37
  56 =   38
  57 =   39
  58 =   3a
  59 =   3b
  60 =   3c
  61 =   3d
  62 =   3e
  63 =   3f
  64 =   40
  65 =   41
  66 =   42
  67 =   43
  68 =   44
  69 =   45
  70 =   46
  71 =   47
  72 =   48
  73 =   49
  74 =   4a
  75 =   4b
  76 =   4c
  77 =   4d
  78 =   4e
  79 =   4f
  80 =   50
  81 =   51
  82 =   52
  83 =   53
  84 =   54
  85 =   55
  86 =   56
  87 =   57
  88 =   58
  89 =   59
  90 =   5a
  91 =   5b
  92 =   5c
  93 =   5d
  94 =   5e
  95 =   5f
  96 =   60
  97 =   61
  98 =   62
  99 =   63
 100 =   64
 101 =   65
 102 =   66
 103 =   67
 104 =   68
 105 =   69
 106 =   6a
 107 =   6b
 108 =   6c
 109 =   6d
 110 =   6e
 111 =   6f
 112 =   70
 113 =   71
 114 =   72
 115 =   73
 116 =   74
 117 =   75
 118 =   76
 119 =   77
 120 =   78
 121 =   79
 122 =   7a
 123 =   7b
 124 =   7c
 125 =   7d
 126 =   7e
 127 =   7f
 128 =   80
 129 =   81
 130 =   82
 131 =   83
 132 =   84
 133 =   85
 134 =   86
 135 =   87
 136 =   88
 137 =   89
 138 =   8a
 139 =   8b
 140 =   8c
 141 =   8d
 142 =   8e
 143 =   8f
 144 =   90
 145 =   91
 146 =   92
 147 =   93
 148 =   94
 149 =   95
 150 =   96
 151 =   97
 152 =   98
 153 =   99
 154 =   9a
 155 =   9b
 156 =   9c
 157 =   9d
 158 =   9e
 159 =   9f
 160 =   a0
 161 =   a1
 162 =   a2
 163 =   a3
 164 =   a4
 165 =   a5
 166 =   a6
 167 =   a7
 168 =   a8
 169 =   a9
 170 =   aa
 171 =   ab
 172 =   ac
 173 =   ad
 174 =   ae
 175 =   af
 176 =   b0
 177 =   b1
 178 =   b2
 179 =   b3
 180 =   b4
 181 =   b5
 182 =   b6
 183 =   b7
 184 =   b8
 185 =   b9
 186 =   ba
 187 =   bb
 188 =   bc
 189 =   bd
 190 =   be
 191 =   bf
 192 =   c0
 193 =   c1
 194 =   c2
 195 =   c3
 196 =   c4
 197 =   c5
 198 =   c6
 199 =   c7
 200 =   c8
 201 =   c9
 202 =   ca
 203 =   cb
 204 =   cc
 205 =   cd
 206 =   ce
 207 =   cf
 208 =   d0
 209 =   d1
 210 =   d2
 211 =   d3
 212 =   d4
 213 =   d5
 214 =   d6
 215 =   d7
 216 =   d8
 217 =   d9
 218 =   da
 219 =   db
 220 =   dc
 221 =   dd
 222 =   de
 223 =   df
 224 =   e0
 225 =   e1
 226 =   e2
 227 =   e3
 228 =   e4
 229 =   e5
 230 =   e6
 231 =   e7
 232 =   e8
 233 =   e9
 234 =   ea
 235 =   eb
 236 =   ec
 237 =   ed
 238 =   ee
 239 =   ef
 240 =   f0
 241 =   f1
 242 =   f2
 243 =   f3
 244 =   f4
 245 =   f5
 246 =   f6
 247 =   f7
 248 =   f8
 249 =   f9
 250 =   fa
 251 =   fb
 252 =   fc
 253 =   fd
 254 =   fe
 255 =   ff

Tu masz wszystkie liczby hex od 0 do FF razem z zapisem dziesiętnym.

0

Swoją drogą niedawno był tutaj link do epickiego kodu w C++ z drabinką if'ów :D

0

Spróbuj coś z tego zrobić - znaleznione na GOOGLACH:

#include <iostream> 

using namespace std; 

void main() 
{ 
        int a = 0xf6, b = 0xe3, c = 0x11; 
        int w; 

        a = a << 16; 
        b = b << 8; 

        cout << hex << a+b+c; 

        cin.get(); 
}
0

@up: dodaełm: (tez znalezione)

Przesuniecie w lewo: zmienna << ile_miejsc, przesunięcie w prawo: zmienna >> ile_miejsc. Oba pracują na argumentach typu całkowitego.

0

Cóż... będę musiał się poddać :/ za 10min koniec zajęć. Dziękuję heheh i winterfresh za jakikolwiek odzew. Pozdrawiam

0

Szukalem kodu i niestety znaleŹĆ nie moglem.

0
#include <map>
#include <iostream>
#include <string>
using namespace std;

int main()
{
  map<short,short> mapa;
  char a,b;
  int i;
  for(a='0',b='/',i=0;a!='F'||b!='F';b=(b=='F'?(a++,'0'):b+1),a=(a==':'?'A':a),b=(b==':'?'A':b),mapa[(a<<8)+b]=i++);
  string napis;
  cout<<"Podaj liczbe szesnastkowa: ";
  for(getline(cin,napis);1&napis.length();napis='0'+napis);
  i=0;
  for(unsigned int z=0;z<napis.length();z+=2)
    {
      string bajt=napis.substr(z,2);
      for (int r=1;r>-1;r--)
          if (bajt[r]>'Z') bajt[r]-=' ';
      i<<=8;
      i+=mapa[(bajt[0]<<8)+bajt[1]];
    }
  cout<<"Liczba dziesietna to "<<i<<endl;
}
0

A nie lepiej:

int hex_to_dec(const string& s) {
  int ret = 0, pow = 1;
  static const int vals[] = {10, 11, 12, 13, 14, 15};
  for(string::const_iterator i = s.begin(); i != s.end(); ++i, pow *= 16)
    if(*i >= '0' && *i <= '9')
      ret += (*i - '0') * pow;
    else if(*i >= 'a' && *i <= 'f')
      ret += vals[*i - 'a'] * pow;
    else if(*i >= 'A' && *i <= 'F')
      ret += vals[*i - 'A'] * pow;
    else
      return -1;
  return ret;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1