» »

ASCII in binarni sys HELP!

ASCII in binarni sys HELP!

rejnmen ::

mi lahko lepo prosim nekdo pomaga... napisat svoje ime v dvojiske systemu! lepo prosim
ajd vsaka crka v ASCII predstavlja eno cifro...
g - 71 - v dvojiskem sys neka huda cifra... to se znam... recimo 010101001 (zmislu sem si)
r - 82 - malo drugacna
e - 69 - se malo drugacna
g - 71 - ...
o - 79 - ...
r - 82 - ...
unit seperator - 31 - bla bla bla
+ se priimek

kako potem telecifre zduzim v eno enoto
in kje obstaja kak converter... da nardim kontrolo... pa se malo poigram s fonti... da bom vecji frajer

lepo prosim

rejnmen

webblod ::

OK, binarni zapis...

Zadeva je taka: Vzemimo da imaš število 25!

25 : 2 = 12 ost. 1
12 : 2 = 6 ost. 0
. 6 : 2 = 3 ost. 0
. 3 : 2 = 1 ost. 1
. 1 : 2 = 0 ost. 1

Sedaj preberemo od spodaj navzgor in dobimo:
11001 oz. 00011001
predstavljeno z osmimi biti (= 1 byte).

če preverimo:

1 * 2^4 = 16
1 * 2^3 = 8
0 * 2^2 = 0
0 * 2^1 = 0
1 * 2^0 = 1

Torej imamo 16 + 8 + 1 = 25 !!!

Tako, kar se ASCII tabele tiče, je pa

Code Char Code Char Code Char Code Char
00 | 032 [space] | 064 @ | 096 `
01  | 33 ! | 65 A | 097 a
02  | 34 " | 66 B | 098 b
03  | 35 # | 67 C | 099 c
04  | 36 $ | 68 D | 100 d
05  | 37 % | 69 E | 101 e
06  | 38 & | 70 F | 102 f
07  | 39 ' | 71 G | 103 g
08 ** | 40 ( | 72 H | 104 h
09 ** | 41 ) | 73 I | 105 i
10 ** | 42 * | 74 J | 106 j
11 | 43 + | 75 K | 107 k
12 | 44 , | 76 L | 108 l
13 ** | 45 - | 77 M | 109 m
14  | 46 . | 78 N | 110 n
15  | 47 / | 79 O | 111 o
16  | 48 0 | 80 P | 112 p
17  | 49 1 | 81 Q | 113 q
18  | 50 2 | 82 R | 114 r
19  | 51 3 | 83 S | 115 s
20  | 52 4 | 84 T | 116 t
21  | 53 5 | 85 U | 117 u
22  | 54 6 | 86 V | 118 v
23  | 55 7 | 87 W | 119 w
24  | 56 8 | 88 X | 120 x
25  | 57 9 | 89 Y | 121 y
26  | 58 : | 90 Z | 122 z
27  | 59 ; | 91 [ | 123 {
28  | 60 < | 92 \ | 124 |
29  | 61 = | 93 ] | 125 }
30  | 62 > | 94 ^ | 126 ~
31  | 63 ? | 95 _ | 127 
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena

wintermute ::

Da ne bo treba vsega se enkrat od zacetka ponavljat, si lahko sodelujoci ogledajo precej bogato zgodovino tega problema.

LOL. Small world yada yada...

rejmen:
... kako potem telecifre zduzim v eno enoto ...

Prosim razlozi kako si predstavljas to "enoto".

rejnmen ::

wintermute, hehe... upam da ne bos tega posta nasel se na dveh forumih:D

webblod, stvar je v tem, da posamezno crko znam pretvorit v binarno stevilo... tud ASCII tabelo poznam (vsaj ne na pamet):D problem je v tisti "zdruzeni enoti"...

nekdo mi je odgovoril, da je edina resitev, da vse tele cifre zapisem vzporedno - jih dodam eno za drugo... takole (naj se povem, da je preveden moj nick rejnmen):
01110010011001010110101001101110011011010110010101101110

meni pa se zdi, da tale cifra predstavlja neko ogromno stevilo... tole mi torej ni jasno... morda edinole na ta nacin, da se zapis dejansko bere najvec 8 bitov naenkrat... se pravi, da zapis: 1111111111111111 "ne beremo kot zapis 16-ih enic, ampak kot zapis dvakrat po 8 enic in podobno... ce je tako potem OK in je problem resen:D

pa se v zvezi s presledkom... v ASCII tabeli predstavlja unit seperator stevilo 31... torej tega pretvorimo v binaren zapis in ga enostavno vstavim med ime in priimek... potemtakem za zapis mojega in imena v binarno obliko potrebujem 14[crk] X 8[bitov] + 8[bitov za presledek] = 120!!! enic in nicel!!! je to res???

in pa hvala zaenkrat

wintermute ::

Tako pac je. 8 bitov (simbolov binarnega zapisa) na znak (simbol iz ASCII tabele). Kakorkoli jih ze razporedis. Enega zraven drugega ali enega pod drugim. Taksen je ASCII kod. Kako jih beres tudi doloca ASCII kod ... po 8 bitov skupaj.

P.S.: ASCII kod je kar se tice crk seveda redundanten (pojem iz teorije o informaciji), ampak to je ze postranskega pomena. Entropija (upostevajoc lastne verjetnosti crk) slovenske abecede je IIRC nekaj nad 4 bite na simbol (crko abecede). Lahko si torej sestavis svoj kod, ki bo ucinkovitejsi (manj redundanten). Ce te se ni minilo (dvomim) poglej pod "huffman" na Googlu.

;)

webblod ::

Ok, sedaj nisem več povsem prepričan, da vem zakaj gre, vendar vseeno...

Problema se lotimo na začetku. Tople vode ne bomo izumljali na novo, torej se zgledujmo po podatkovnem tipu String.
V C-ju je ta predstavljen kot polje tipa Char, ki se v Windows okolju konča z #0.
Torej gre v pomnilniku za linearno lego bitov, kjer 8 bitov predstavlja byte vrednost, ki se na podlagi ASCII tabele pretvori v enega izmed simbolov.
Za neko IME PRIIMEK torej res potrebujemo v tem primeru
3 + 1 + 7 + 1 bytov * 8 bitov = 96 bitov
torej 96 1-ic oz. 0-el!

Bistvo je torej v deklaraciji podatkovnega tipa in njegovi interpretaciji... Tako naprimer lahko s kazalci naredimo zanimiv eksperiment... Ustvarimo štiri kazalce tipa unsigned short (oz. Byte v Pascalu), dodelimo njihovim naslovom neke vrednosti, nato ustvarimo nov kazalec na podatkovni tip unsigned long (Cardinal v Pascalu), in mu kot pomnilniški naslov dodelimo pomniniški naslov prve spremenljivke... Če smo slučajno dodelili prvim štirim spremenljivkam dodelili vrednosti 255,0,0,0 bomo ob branju vrednosti na katero kaže naš zadnji kazalec, dobili rezultat 2147483648.

Kaj je cilj vsega tega nakladanja? To, da imaš prav... res gre za zaporedno "pisanje" enic in ničel - vendar pa je pomembna interpretacija le teh pri branju in ne njihova dejanska vrednost (skratka tisto ogromno število, ki si ga omenjal).

Upam, da nisem spet "čist' mim' usekal"... :8)


LP
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena

rejnmen ::

OK stvar razumem... problem je bil edino v definiranju / interpretaciji branja te dolge cifre

hvala obema


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Veitchev Diagram

Oddelek: Elektrotehnika in elektronika
125977 (4350) amacar
»

ASCII ???

Oddelek: Programska oprema
71816 (1682) Pimoz
»

Inforamtika-vprašanja

Oddelek: Šola
71843 (1701) seminal
»

[java ali C] Datoteka v obliki 0 in 1

Oddelek: Programiranje
191767 (1487) Mmm'Aah
»

eno vprasanje na kratko

Oddelek: Programiranje
121426 (1196) rc-car

Več podobnih tem