www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Hex to Bin

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Pet Jan 19, 2007 11:03 pm    Naslov sporočila:  Hex to Bin Odgovori s citatom

Pri računalništvu moramo v c++ napisati program, ki bo seštel dve 256 bitni števili. Ker pa števila "ne moreš" vnesti v binarnem sistemu (ker je preveliko), jih moramo vnesi v šestnajstiškem oziroma hex sistemu. Ti vnešeni števili pa moramo nato pretvoriti v binarni sistem in ju shraniti v polje in izračunati njuno vsoto. Zanima pa me, kako naj pretvorim število iz hex v bin sistem?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Slowfly
Član
Član



Pridružen-a: Sre 18 Feb 2004 2:07
Prispevkov: 4082
Aktiv.: 17.19
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jan 19, 2007 11:31 pm    Naslov sporočila:   Odgovori s citatom

Uporabi na primer programček HEX Editor.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Pet Jan 19, 2007 11:45 pm    Naslov sporočila:   Odgovori s citatom

slowfly, Shocked

Drugače pa hex v bin sploh ni problem. HEX prebereš kot znake, vsak znak od 0-9 in A-F pretvoriš v 4-bite v binarnem sistemu in si na konju (če seveda to misliš).

_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Slowfly
Član
Član



Pridružen-a: Sre 18 Feb 2004 2:07
Prispevkov: 4082
Aktiv.: 17.19
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jan 19, 2007 11:52 pm    Naslov sporočila:   Odgovori s citatom

Uff, šele sedaj sem dobro prebral vprašanje! Če prav razumem, se išče programska rešitev problema v C++. Brick wall Brick wall Se opravičujem za neumen odgovor!

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Pet Jan 19, 2007 11:56 pm    Naslov sporočila:   Odgovori s citatom

Hja, na to varianto sem že pomislil. Da bi pač imel eno funkcijo za pretvarjanje v kateri bi se spraševal če je 0, če je 1, če je 2,... in potem bi za vsako hex vrednost priredil novo binarno vrednost. Si to mislil ne?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Slowfly
Član
Član



Pridružen-a: Sre 18 Feb 2004 2:07
Prispevkov: 4082
Aktiv.: 17.19
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 20, 2007 12:04 am    Naslov sporočila:   Odgovori s citatom

Mogoče je pa tukaj rešitev tvoje težave. Če sem spet brcnil v temo, me prosim ne popljuvajta preveč. Laughing Pač nisem programer.

lp
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Sob Jan 20, 2007 12:20 am    Naslov sporočila:   Odgovori s citatom

Mogoče je res to rešitev, ampak ne razumem programa, ker še v šoli nismo prišli tako daleč Sad
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Sob Jan 20, 2007 10:42 am    Naslov sporočila:   Odgovori s citatom

Potem pa malo bolj natančno povej, zakaj potrebuješ binarni zapis? Za izpis? Za računanje?
_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
GJ
Član
Član



Pridružen-a: Čet 02 Nov 2006 15:51
Prispevkov: 946
Aktiv.: 4.16
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 20, 2007 10:46 am    Naslov sporočila:   Odgovori s citatom

V pascalu to izgleda takole..

Koda:
function HexToInteger(s: string): integer;
var
  n: integer;
begin
  result:=0;
  for n := 1 to length(s) do
    case s[n] of
      '0'..'9': result := result shl 4 + (ord(s[n]) - ord('0'));
      'A'..'F': result := result shl 4 + (ord(s[n]) - 55);
      else
        ShowMessage('Napačen znak');
    end;
end;


V c boš pa že znal prevesti..Laughing

LP GJ
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Sob Jan 20, 2007 3:20 pm    Naslov sporočila:   Odgovori s citatom

NeoTO je napisal/a:
Potem pa malo bolj natančno povej, zakaj potrebuješ binarni zapis? Za izpis? Za računanje?


Binarni zapis potrebujem za računanje in izpis. Evo, prilagam besedilo naloge, da bo bolj razumljivo.

Napišite funkcijo za seštevanje 256 bitnih celih števil. Funkcija sprejme števili shranjeni v polju in v binarni obliki. Rezultat je vsota podanih števil v polju in binarni obliki. Dodatno napišite še funkcijo za izpis binarnih števil in main funkcijo, v kateri omogočite uporabniku vpis števil, nato pa mu izpišete rezultat funkcije seštevanja oz. vsoto števil.

@GJ, tisto kar imaš napisano v case stavku si ne znam prevest v c++.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Sob Jan 20, 2007 3:50 pm    Naslov sporočila:   Odgovori s citatom

Tisto lahko napišeš takole:
Koda:

if (s[n]>='0' && s[n]<='9') result=result<<4 + s[n]-'0';
if (s[n]>='A' && s[n]<='F') result=result<<4 + s[n]-'A'+10;


Še vedno pa ne razumem v kakšni obliki imaš podan vhodni podatek. Binarno pomeni pač kot int ali kot int1[]={0, 1, 1, 0, 0, 1, 1....} ?

_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
NUFAN
Član
Član



Pridružen-a: Pon 05 Apr 2004 21:39
Prispevkov: 947
Aktiv.: 3.99
Kraj: Žalec

PrispevekObjavljeno: Sob Jan 20, 2007 4:26 pm    Naslov sporočila:   Odgovori s citatom

Vhodni podatek vnese uporanik in sicer v hex zapisu.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2105
Aktiv.: 8.86
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 20, 2007 6:20 pm    Naslov sporočila:   Odgovori s citatom

Iskoristiš dejstvo, da so znaki v ACSII po vrsti '1' = '0'+1;

Koda:
if ((znak >= '0') && (znak <= '9')) byte = znak-'0';
else if ((znak >= 'A') && (znak <= 'F')) byte = znak-'A'+10;


Za male črke boš pa že sam pogruntal;
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Programska oprema Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group