Autor Beitrag
Dingo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.04.17 10:13 
Grüße!

Ich quäle mich gerade mit dem Verständniss der Bitberechnung herum - tolles Thema!^^

Habe da soeben eine Aufgabe die ich 0 verstehe. Geht um folgendes:

"Enthällt 12345 den Faktor 2hoch3?"
12345 & 8
Antwort: 8

"Enthällt 12345 den Faktor 2hoch9?"
12345 & 32
Antwort 0

"Enthällt 12345 den Faktor 2hoch13?"
12345 & 8192
Antwort: 8192

Kann mir jemand mal erklären was die Aufgabe bewirkt bzw. wie man auf diese Ergebnisse kommt?

Denn wo ist 12345 eine Zweierpotenz von 8?

8 * 2 = 16
16 * 2 = 32
32 * 2 = 64
64 * 2 = 128
128 * 2 = 256
256 * 2 = 512
512 * 2 = 1024
1024 * 2 = 2048
2048 * 2 = 4096
4096 * 2 = 8192
8192 * 2 = 16384

Oder verhau ich hier gerade was komplett. -,-


Moderiert von user profile iconNarses: Topic aus C# - Die Sprache verschoben am Mo 10.04.2017 um 14:21
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 10:24 
Auf eine Ja-Nein-Frage mit einer Zahl zu antworten halte ich im Allgemeinen für eher falsch.

Ansonsten geht es um Binärcode, nicht um Dezimalmultiplikation, wenn ich das so weit richtig verstehe. ;)
de.wikipedia.org/wik...tweiser_Operator#UND
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 10.04.17 11:03 
Wenn du Dezimaldarstellung der Werte in Binär änderst und dann bitweises UND darauf anwendest (Das ist die Bedeutung von &, es ist der binäre UND Operator) erhältst du die passende Antwort.

ausblenden Quelltext
1:
2:
3:
4:
   11000000111001   (12345)
&  00000000001000   (8)
   --------------
   00000000001000 = (8)


Die Stellen als Faktoren zu bezeichnen finde ich allerdings auch unglücklich/verwirrend. Kann aber auch an unzureichender mathematischer Bildung meinerseits liegen.
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 11:22 
Das löst aber die Frage nicht, denn ein bitweises UND kannst du auf alles anwenden, die Antwort lautete also immer "Ja".
Dingo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.04.17 11:43 
Also die Antwort laut Buch wäre:

"Die Zahl 12345 enthält also die Zweierpotenzen 8 (2hoch3) und 8192 (2hoch13), nicht aber 512 (2hoch9)."

Ich finds auch etwas merkwürdig, wie man eine Ja/Nein Frage mit einer Zahl beantwortet...^^"


Zuletzt bearbeitet von Dingo am Mo 10.04.17 12:06, insgesamt 1-mal bearbeitet
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 11:52 
Im Buch steht "enthällt" mit Doppel-L? Was für ein furchtbares Buch. 8)

Zitat:
nicht aber 512 (2hoch9)


Is' richtig:

ausblenden Quelltext
1:
2:
3:
4:
11000000111001 &
00001000000000 =
----------------
00000000000000


Da passt kein Bit.

Nachtrag: Die nächste Stufe wäre es übrigens, das nur anhand der Binärdarstellung von 12345 ohne dieses grundschulmäßige Untereinanderschreiben rauszufinden. Bei 2^x ist das erfreulich einfach.
Beispiel 2^9: Ist die 9+1te Stelle von rechts eine 1? :D
Dingo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.04.17 12:07 
Ich glaub jetzt versteh ichs langsam.^^
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 12:10 
Echt? Ich nämlich nicht... :shock:
Dingo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.04.17 14:02 
Es wird Bitweise der & Operator genutzt und dann vergleichen. :)

Beispiel an 12345 und 8:

ausblenden C#-Quelltext
1:
2:
3:
4:
11000000111001   (12345)
00000000001000   (8)
--------------
00000000001000


Mit &-Operator bedeutet es:

0 und 0 ergibt 0
0 und 1 ergibt 0
1 und 0 ergibt 0
1 und 1 ergibt 1

Wenn man also 12345 und 8 Gegenüberstellt und Bitweise vergleicht kommt die 8 als Zweierpotenz vor.

###########################################################

Beispiel an 12345 und 512:

ausblenden C#-Quelltext
1:
2:
3:
4:
11000000111001   (12345)
00001000000000   (512)
--------------
00000000000000


Hier am Beispiel 512 wird wieder jede 0 und 1 mit der darunterliegenden vergleichen und wieder gilt:

0 und 0 ergibt 0
0 und 1 ergibt 0
1 und 0 ergibt 0
1 und 1 ergibt 1

Im Endergebnis sieht man, die 512 kommt nicht in der 12345 vor.
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 14:06 
Wer's erklären kann, hat's verstanden. (Sofern seine Erklärung stimmt.) 8)
Dingo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64
Erhaltene Danke: 1



BeitragVerfasst: Mo 10.04.17 14:22 
Ist meine Antwort falsch? :D
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 10.04.17 14:29 
Vereinfacht gesagt, kann man sagen, mit dem &-Operator kann man prüfen, ob ein (oder mehrere) Bits gesetzt sind.
Die Bits, die man abfragen möchte, ist die Maske.

Ich möchte wissen, ob das 2. Bit gesetzt ist.

Zu prüfende Zahl:
1100 0010
Maske (hier zu prüfende Bits setzen)
0000 0010

Ergibt
ausblenden Quelltext
1:
2:
3:
4:
  1100 0010
& 0000 0010
-----------
  0000 0010


Allgemein
Wenn x & maske = maske, dann sind alle Bits, die in der Maske gesetzt sind, auch in x gesetzt.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 10.04.17 14:35 
user profile iconDingo hat folgendes geschrieben Zum zitierten Posting springen:
Ist meine Antwort falsch? :D
Nein, das war schon genau richtig.

user profile iconNersgatt hat noch den Operator genauer betrachtet, aber was du geschrieben hast stimmte auch.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 10.04.17 14:36 
Moin!

user profile iconDingo hat folgendes geschrieben Zum zitierten Posting springen:
Ich quäle mich gerade mit dem Verständniss der Bitberechnung herum
Damit würde ich mich auch rumquälen, denn "Bits" kann man nämlich nicht "berechnen"... die sind 0 oder 1, fertig. 8) Wenn man mehrere davon zusammenfasst und diesen eine Bedeutung zuweist, dann können wir auch mit dem Rechnen anfangen. :P

user profile iconDingo hat folgendes geschrieben Zum zitierten Posting springen:
tolles Thema!^^
Allerdings! :D (ernst gemeint!)

user profile iconDingo hat folgendes geschrieben Zum zitierten Posting springen:
Habe da soeben eine Aufgabe die ich 0 verstehe.
Dann schreiben wir das doch mal etwas anders auf, dann wird das auch sofort verständlich. ;)

user profile iconDingo hat folgendes geschrieben Zum zitierten Posting springen:
"Enthällt 12345 den Faktor 2hoch3?"
Bevor wir das tun, muss ich allerdings nochmal über das Buch ablästern (von dem Typo mal ganz abgesehen): wer schon "Faktoren" mit "Summanden" verwechselt, sollte besser keine Bücher schreiben... :roll:

12345 ist die "Kurzschreibweise" von:
1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 + 5*10^0 :think:

Wenn man das jetzt aber nicht zur Basis 10, sondern zur Basis 2 haben möchte (weil Computer nun mal mit Zweierpotenzen besser "funktionieren"), dann ergibt das:

11000000111001 und das ist die "Kurzschreibweise" für:

1*2^13 +
1*2^12 +
0*2^11 +
0*2^10 +
0*2^9 +
0*2^8 +
0*2^7 +
0*2^6 +
1*2^5 +
1*2^4 +
1*2^3 + <-- 2^3=8 ist in der Summe enthalten
0*2^2 +
0*2^1 +
1*2^0

Damit sollten sich die restlichen "Fragen" auch leicht "lösen" lassen. :zwinker:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: hydemarie
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 14:43 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
"Bits" kann man nämlich nicht "berechnen"... die sind 0 oder 1, fertig. 8)


Nicht unbedingt!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 10.04.17 14:50 
Sorry, vergiss mal kurz die Farbe meines Namens und die Funktion dahinter, aber das muss jetzt raus:

Vernünftig erklären kannste´s nicht, aber klugscheißen geht immer. :autsch:

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: icho2099, user32
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Mo 10.04.17 14:57 
Sorry, vergiss mal kurz die Farbe meines Namens und die Funktion dahinter, aber das muss jetzt raus:

Lieber gar nicht erklären als falsch erklären. :mahn:

Nachtrag:
Den Vorwurf, ich würde etwas "nicht vernünftig erklären", empfinde ich als Affront. Dingo hat's nach eigener Aussage verstanden, bevor du dich hier überhaupt eingemischt konstruktiv eingebracht hast.