"We are back" « oc.at

"verschlüsselung" unter c

Duron 11.06.2002 - 22:28 2223 31
Posts

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
tjo, 1 byte is schon 8 bit
ABER
früher im dos war des gute alte integer no 16bit -> -65534 - 65535

aber ab winNT bzw. win95 haben sich ja die 32-bit OS verbreitet
da hast 32bit integer

und mit den neueren versionen der C++ compiler stehen dir auch datentypen wie int64 zur verfügung

natürlich sind die anderen datentypen wie double, long, etc. auch grösser geworden

HaBa

Vereinsmitglied
Dr. Funkenstein
Avatar
Registered: Mar 2001
Location: St. Speidl / Gle..
Posts: 19783
Is schon klar, aber in dem Zahlenbereich in dem sich die Chars abspielen ist es "Stecka/Blunzn" ob ich da 64bit habe oder nicht

Meine "Lösung" macht ja auch nichts anderes als das vom xdfk, nur gehe ich halt große Umwege.

Die erste Lösung vom xdfk ist wohl die beste.

xdfk

pädagogisch wertvoll
Avatar
Registered: Sep 2000
Location: Graz
Posts: 6441
danke danke ;)

die länge eines integers hängt immer von der plattform ab habts schon recht
dafür wurde aber auch der sizeof befehl erfunden. ;)

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Zitat von HaBa
Is schon klar, aber in dem Zahlenbereich in dem sich die Chars abspielen ist es "Stecka/Blunzn" ob ich da 64bit habe oder nicht

Meine "Lösung" macht ja auch nichts anderes als das vom xdfk, nur gehe ich halt große Umwege.

Die erste Lösung vom xdfk ist wohl die beste.

ich wollte doch nicht - :eek: gott bewahre :eek: - dich verbessern, sondern lediglich auf die frage vom that näher eingehen (wegen byte=8 bit, integer)

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Zitat von that
cool, ich dachte immer ein Byte hat auf heutigen Maschinen 8 Bit, auch bei int...
:o :p

*lol*

Ja okay stimmt war ned korrekt - richtig is natürlich des sich die Anzahl der Bytes ändert :)

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von xdfk
danke danke ;)

die länge eines integers hängt immer von der plattform ab habts schon recht
dafür wurde aber auch der sizeof befehl erfunden. ;)

stimmt, und sizeof(char) ist IMMER 1.

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Zitat von that
stimmt, und sizeof(char) ist IMMER 1.

naja, ausser du hast unicode-zeichen, die wären 2byte gross :rolleyes:
in c wär des aber dann nimma char sondern WCHAR (glaub ich, weiss net genauen namen)

in java sind char's standardmäßig unicode

Luki

UNDER CONSTRUCTION
Avatar
Registered: Feb 2002
Location: 127.0.0.1
Posts: 2347
@mop|simgon : ich dachte word= 0-65000 und integer = -32000 - +32000

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von mop|simon
naja, ausser du hast unicode-zeichen, die wären 2byte gross :rolleyes:
in c wär des aber dann nimma char sondern WCHAR (glaub ich, weiss net genauen namen)

in java sind char's standardmäßig unicode

wchar_t ist das in C++.

xdfk

pädagogisch wertvoll
Avatar
Registered: Sep 2000
Location: Graz
Posts: 6441
Zitat von Luki
@mop|simgon : ich dachte word= 0-65000 und integer = -32000 - +32000


auf 16 bit maschinen:
signed integer = -32000 bis +32000
unsigned integer = 0 bis 65k


signed= 1 bit für vorzeichen reserviert
unsigned kein bit für VZ reserviert
wobei auch int nicht auf allen maschinen gleich sein muss kann variieren pseudo standard ist jedoch 32 bit

immer aufpassen und im notfall den sizeof operator verwenden.
Bearbeitet von xdfk am 12.06.2002, 19:32

Oculus

void
Avatar
Registered: Jun 2001
Location: schlafzimmer
Posts: 856
Zitat von Luki
@mop|simgon : ich dachte word= 0-65000 und integer = -32000 - +32000

1 word war früher 2 byte
wie's jetzt ausschaut kann i gar net sagen

aber es gibt immer 2 arten von datentypen
signed und unsigned
signed: vorzeichenbehaftet; d.h. das vorderste bit ist das vorzeichen-bit. deswegen von -2^15 (1xx..x) bis +2(0xxx...x)^15
15 deswegen, weil ja 1 bit fehlt
unsigned: ohne vorzeichen. also von 0 bis zb 2^16

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat von xdfk
wobei auch int nicht auf allen maschinen gleich sein muss kann variieren pseudo standard ist jedoch 16 bit

Wir schreiben das Jahr 2002, und "Standard" für int ist auf heutigen Maschinen 32 Bit...

Garantiert ist bei C/C++ leider gar nix, außer:

char = ein Zeichen des Charactersets = 1 Byte (meistens 8 Bit, allerdings "implementation-defined", es gibt einige exotische alte Maschinen mit 9-Bit-Bytes).

und (AFAIR):

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)

xdfk

pädagogisch wertvoll
Avatar
Registered: Sep 2000
Location: Graz
Posts: 6441
Zitat von that
Wir schreiben das Jahr 2002, und "Standard" für int ist auf heutigen Maschinen 32 Bit...

Garantiert ist bei C/C++ leider gar nix, außer:

char = ein Zeichen des Charactersets = 1 Byte (meistens 8 Bit, allerdings "implementation-defined", es gibt einige exotische alte Maschinen mit 9-Bit-Bytes).

und (AFAIR):

sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)

stimmt int is 32 bit mein fehler
pascal& dos waren noch 16 bit ;)
wie gesagt hängt immer von der umgebung ab usw. auf den neuen 64 bit cpus wird int auch 64 bit lang sein......

Luki

UNDER CONSTRUCTION
Avatar
Registered: Feb 2002
Location: 127.0.0.1
Posts: 2347
die bezeichnungen waren aus borland pascal alias turbo pascal - also eine hochsprache älterer tage ;) (waren 16bit umgebungen)

xdfk

pädagogisch wertvoll
Avatar
Registered: Sep 2000
Location: Graz
Posts: 6441
@luki kann sein meine pascal tage sind schon lang vorbei ;)

ich fang auch grad wieder erst zum coden an....
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz