Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.02.11
Prihlásený: 28.04.11
Príspevky: 14
Témy: 7
Príspevok NapísalOffline : 01.03.2011 13:20

vysvetlil by mi niekto ako toto funguje.?
Kód:
#include <stdio.h>

int hex2num(char c)
{
   if(c>='0' && c<='9')return c-'0';
   return c-'A'+10;
}

int main(int argc,char *argv[])
{
   const char *in=":10010000214601360121470136007EFE09D21901XX";   //40
//    const char *in=":100010000C9445000C9445000C9445000C944500XX";   //4C
//    const char *in=":100020000C9445000C9445000C9445000C944500XX";   //3C
//    const char *in=":100030000C9445000C9445000C9445000C944500XX";   //2C
//    const char *in=":100040000C9445000C9445000C9445000C944500XX";   //1C
   int sum = 0;
   int cnt = ((hex2num(in[1])<<4) | hex2num(in[2])) + 4;
   for(int k=0;k<cnt;++k) sum += (hex2num(in[(k<<1)+1]) << 4) | hex2num(in[(k<<1)+2]);
   printf("%02X\n",((0xff-(sum&0xff))+1) & 0xff);
   return 0;
}


Offline

Skúsený užívateľ
Skúsený užívateľ
pomoc s kodom

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 01.03.2011 13:35

mno podľa názvu funkcie by som tipol, že ide o prevod z hexadecimálnej sústavy na číslo, avšak nechce sa mi to bližšie skúmať, keďže je to dosť prasácky zapísané
okrem toho, ako som ti písal v druhej téme, kód patrí do CODE!







_________________
C#, PHP, ...
Offline

Skúsený užívateľ
Skúsený užívateľ
pomoc s kodom

Registrovaný: 11.01.09
Prihlásený: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 01.03.2011 15:03

int hex2num( char c )
nazov hovori za vsetko - prevedie vstupny parameter znak na ciselny typ ( cize napr z '5' spravi 5 v int ). c - '0' preto, lebo ak je znak c 0, '0' - '0' je nula, cize int bude 0. '1' - '0' je rozdiel 1, cize vysledok je 1, atd ...

const char *in=":10010000214601360121470136007EFE09D21901XX";
retazec uchovavajuci hexadecimalne cisla, bajt po bajte, cize:
10 01 00 00 ... D2 19 01

hex2num( in[1] ) << 4 )
druhy prvok pola in ( prvy je in[0] a je rovny znaku ":" ) prevedie na cislo a vynasobi ho 2^4 ( lepsie povedane, bitovo posunie toto cislo o 4 bity dolava - nasobenie sa iba lahsie predstavuje ). Je to preto, lebo na prevod z hexa do dec sa druha cifra zprava v hexa cisle vynasobi sestnastkou a pripocita sa prva cifra zprava.

| hex2num( in[2] ) )
tu je to pripocitanie prvej cifry ( bitovy sucet ).

+ 4
k vysledku sa pripocita cislo 4 -- netusim z akeho dovodu ( vysledok cnt je 20 )

for( k = 0; k < cnt; ++k )
cyklus sa vykona cnt, teda 20-krat. Ak si pozries, kolko hex cisel velkosti 1 bajt sa nachadza v retazci in, uvidis, ze ich je presne 20

sum += ( hex2num( in[( k << 1 ) + 1] ) << 4) | hex2num( in[( k << 1 ) + 2] );
proces sa opakuje s tym, ze sa prejde vsetkych 20 ( v tomto pripade ) "bajtov"

Vysledok je sucet tychto bajtov v premennej sum ulozenych desiatkovo.

sum & 0xff
orezanie na spodny jeden bajt ( rozsah 0 - 255 )

printf( "%02X\n", ( ( 0xff - ( sum & 0xff ) ) + 1 ) & 0xff );
vypisanie vysledneho, este nejako orezneho cisla, v hexadecimalnom tvare


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.02.11
Prihlásený: 28.04.11
Príspevky: 14
Témy: 7
Príspevok Napísal autor témyOffline : 01.03.2011 15:42

vdaka.:D


Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Pomoc kodom

v Redakčné systémy

4

522

26.03.2007 12:16

kajbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc s umiestnenym kodom

v JavaScript, VBScript, Ajax

1

312

24.10.2012 11:07

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s PHP kódom

v PHP, ASP

4

374

03.01.2013 12:42

saboter14 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem s kodom v C

v Assembler, C, C++, Pascal, Java

6

460

01.01.2011 7:32

reDo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s ochranym kodom v mobile

v Mobilné zariadenia

2

551

22.12.2008 14:52

majky358 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s php kodom pravdepodobne cookies

v PHP, ASP

9

542

15.06.2007 17:35

chiwo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. str_replace - nahradenie nového riadku kódom <br>

v PHP, ASP

7

801

30.12.2010 10:37

blazej44800 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. "Náhodné" sms s kódom od google

v Služby a webstránky

1

306

27.09.2020 9:47

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc pomoc prosim nefunguje internet

v Ovládače

7

1141

09.09.2017 20:37

Smith Wesson Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc pri pomoc pri skladaní PC - od 1 500 do 1 800 Eur (rozlíšenie 1440p)

v PC zostavy

13

805

28.09.2023 20:23

johny314 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc

v Počítačové hry

2

588

13.06.2012 18:02

PepeTheDragon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc

v JavaScript, VBScript, Ajax

2

878

15.05.2009 20:15

firewall Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POMOC

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Ostatné

30

2273

27.09.2009 20:01

workoholik16 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pomoc

v ATI/AMD grafické karty

10

1061

10.01.2008 8:48

kasom Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc

v Audio programy

4

941

05.02.2008 10:06

raikonen11 Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. pomoc

v HTML, XHTML, XML, CSS

1

375

18.10.2013 18:36

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra