Discussion:
nur für theoretischer Annahme ...
(zu alt für eine Antwort)
Jens Kallup
2022-01-15 18:40:37 UTC
Permalink
Hallo,

nur mal so fÌr mein VerstÀndnis:

kann ich eine beliebige Zahl bilden, die ÃŒber die Bus-Breite
reicht ?

mal angenommen ich habe 2 hex zahlen:

09 und 09 = 0909

dann bedeutet doch, dass das letzte Element einen Wert von
0..255 - 00..ff einsetzen kann

ff = 255
0100 = 256
0102 = 257
...
0100 = 1 * 255
01ff = 1 * 255 + 255

0200 = 2 * 255
02ff = 2 * 255 + 255

0300 = 3 * 255
03ff = 3 * 255 + 255
...

ff00 = 255 * 255 + 0
ff01 = 255 * 255 + 1
...

ffff = 255 * 255 + 255
...

nun zum gucken:

ff ff ff 00 = 255 * 255 * 255 + 0
ff ff ff 01 = 255 * 255 * 255 + 1
...

wie man sehen kann, ist ein Pattern zu erkennen.
Kann man dieses Muster irgendwie dazu verwenden,
um Zahlen, unabhÀngig von der CPU Bus-Breite
anwenden ?

Also in der Art, das man 2 Bytes zusammen nimmt
bzw. gruppiert:

ff ff = 255 * 255 <- a
ff ff = 255 * 255 <- b
Helmut Waitzmann
2022-01-16 05:44:33 UTC
Permalink
kann ich eine beliebige Zahl bilden, die über die Bus-Breite
reicht ?
09 und 09 = 0909
dann bedeutet doch, dass das letzte Element einen Wert von
0..255 - 00..ff einsetzen kann
ff = 255
0100 = 256
0102 = 257
...
0100 = 1 * 255
0100 = 1 * 256
01ff = 1 * 255 + 255
01ff = 1 * 256 + 255
0200 = 2 * 255
0200 = 2 * 256
02ff = 2 * 255 + 255
02ff = 2 * 256 + 255
0300 = 3 * 255
0300 = 3 * 256
03ff = 3 * 255 + 255
03ff = 3 * 256 + 255
...
ff00 = 255 * 255 + 0
ff00 = 255 * 256 + 0
ff01 = 255 * 255 + 1
ff01 = 255 * 256 + 1
...
ffff = 255 * 255 + 255
ffff = 255 * 256 + 255
...
ff ff ff 00 = 255 * 255 * 255 + 0
ff ff ff 00 = 255 * 256 ^ 3 + 255 * 256 ^ 2 + 255 * 256 ^ 1 + 0
ff ff ff 01 = 255 * 255 * 255 + 1
ff ff ff 01 = 255 * 256 ^ 3 + 255 * 256 ^ 2 + 255 * 256 ^ 1 + 1
...
wie man sehen kann, ist ein Pattern zu erkennen.
Wo?
Kann man dieses Muster irgendwie dazu verwenden,
um Zahlen, unabhängig von der CPU Bus-Breite
anwenden ?
Wo ist hier irgend etwas von einer Bus‐Breite zu sehen?
Also in der Art, das man 2 Bytes zusammen nimmt
ff ff = 255 * 255 <- a
ff ff = 255 * 256 + 255 <- a
ff ff = 255 * 255 <- b
ff ff = 255 * 256 + 255 <- b


Zahlen mit den Ziffern 0, 1, 2, …, 8, 9, a, b, c, d, e und f sind
Zahlen im 16er‐System, auch Sedezimal‐ oder Hexadezimal‐System
genannt.  Sie funktionieren im Prinzip wie Zahlen im Zehnersystem,
haben als Basis aber 16 statt 10.

Wenn man im 10er‐System, bei der Einerstelle beginnend, nach links
fortfahrend, je 2 Ziffern zusammenfasst, erhält man das
100er‐System, denn 100 = 10^2.  Ein Beispiel:

Die Zahl 4711 im 10er‐System bedeutet


4 7 1 1 = 4*10^3+7*10^2+1*10^+1*10^0 = 4711


Wenn man je 2 Ziffern zusammenfasst, erhält man


47 11 = (4*10+7)*100^1+(1*10+1)*100^0 = 4711


Entsprechend funktioniert das 16er‐System:


3 a 9 c = 3*16^3+10*16^2+9*16^1+12 = 15004


Fasst man je zwei Ziffern zusammen, erhält man das 256er‐System,
denn 256 = 16^2:

3a 9c = (3*16+10)*256^1+(9*16+12)*256^0 = 15004


Ich habe den Eindruck, dir ist bisher nicht ganz klar, wie ein
Stellenwertsystem funktioniert.

Schau dir dazu im Wikipedia den Artikel «Stellenwertsystem»
(<https://de.wikipedia.org/wiki/Stellenwertsystem#top>) an.  Dann
brauche ich ihn hier nicht abzutippen.

Falls du nach der Lektüre des Wikipedia‐Artikels Fragen hast,
zitiere die unklaren Stellen und stelle die Frage.

Wenn das dann geklärt ist, kann man die Frage nach der Bus‐Breite
stellen.
Stefan Reuther
2022-01-16 10:04:19 UTC
Permalink
kann ich eine beliebige Zahl bilden, die über die Bus-Breite
reicht ?
[...]

Genauso wie man aus den Ziffern 0-9 beliebig große Zahlen bilden kann,
indem man die einzelnen Stellen mit Potenzen von 10 multipliziert, kann
man aus den "Ziffern" 0-255 und Potenzen von 256 Zahlen bilden, oder aus
den "Ziffern" 0-4294967295 und Potenzen von 4294967296. Oder eben aus
den Ziffern 0 und 1 sowie Zweierpotenzen.

https://de.wikipedia.org/wiki/Langzahlarithmetik


Stefan

Loading...