Hi Was für ein Ergebnis erhalte ich, wenn ich eine Integer Zahl durch 1024 teile? VG
:
Verschoben durch Admin
top schrieb: > Was für ein Ergebnis erhalte ich, wenn ich eine Integer Zahl durch 1024 > teile? wenn du keinen Fehler machst, dann das richtige. Was ist das für eine blöde frage?
Das wird doch immer eine Gleitkommazahl, oder? Aber ich will verstehen warum! VG
top schrieb: > Was für ein Ergebnis erhalte ich, wenn ich eine Integer Zahl durch 1024 > teie Wenn alles gut geht einen um 1024 kleineren Wert. Du solltest deine Fragen in den richtigen Kontext stellen. Der Computer kann keine Gedanken lesen...
Lothar Miller schrieb: > Wenn alles gut geht einen um 1024 kleineren Wert. Wenn alles gut geht einen um "den Faktor" 1024 kleineren Wert
top schrieb: > Das wird doch immer eine Gleitkommazahl, oder? Nö. Eine Intergerzahl geteilt durch eine andere ergibt natürlich wieder eine Integerzahl.
Peter II schrieb: > nö, warum sollte es das werten. Weil (value / 1024) so definiert ist (in Pascal)? Hanno schrieb: > Eine Intergerzahl geteilt durch eine andere ergibt natürlich wieder > eine Integerzahl. Ganz so natürlich ist das nicht. Es hängt davon ab, wie die Programmiersprache das definiert. Die wurde hier nämlich nicht erwähnt.
:
Bearbeitet durch User
Wir sind ja im Bereich µC des Forums. Von daher würde ich sagen, wenn du es mit einem Shift Befehl löst, dann kommt was ganzzahliges raus... :-P
Gibt es noch einen anderen Grund warum man gerade durch 2^10 teilt?
Dennis Kaufmann schrieb: > Von daher würde ich sagen, wenn du es mit einem Shift Befehl löst, dann > kommt was ganzzahliges raus... Jo, aber nicht unbedingt das richtige Ergebnis. Wenn negativ. ;-)
:
Bearbeitet durch User
top schrieb: > Gibt es noch einen anderen Grund warum man gerade durch 2^10 teilt? was ist denn der erste Grund?
Mir geht es hier um das Verständnis. Meine Protokoll gibt mir eine Integerzahl aus. z.B. -5566 oder 20000. Das Ergebnis das ich aber brauche ist für mich seltsamerweise immer die Division durch 1024. Ich verstehe aber nicht warum und warum gerade 1024 der Teiler ist. -5566/1024 = -5,43...(stimmt) 20000/1024 = 19,53... (stimmt auch)
Pascal probiert und gerade dabei den Unterschied zwischen / und div zu lernen?
top schrieb: > Das Ergebnis das ich aber brauche ist für mich seltsamerweise immer die > Division durch 1024. Vielleicht solltest du mal etwas über den Kontext der Frage verraten. Dort nämlich dürfte die Antwort liegen.
Sind das vielleicht Werte von einem 10bit ADC? Ohne genau zu wissen was du machst kann man nur raten...
Bastler schrieb: > Pascal probiert und gerade dabei den Unterschied zwischen / und div zu > lernen? Keine Sorge, das ist schon länger her. Und hättest du meine Antwort davor verstanden, dann hättest du erkennen können, dass ich den kenne. Es ist nur einfach so, dass in der Frage jeglicher Kontext fehlte. Bei solchen Fragen neige ich dazu, mir diesen Kontext nach Gusto hinzu zu erfinden, gern etwas schräg.
:
Bearbeitet durch User
in meinem Programm wird irgendeine Zahl durch 12 geteilt, kann mir einer erkären warum gerade 12?
top schrieb: > Mir geht es hier um das Verständnis. Meine Protokoll gibt mir eine > Integerzahl aus. z.B. -5566 oder 20000. > > Das Ergebnis das ich aber brauche ist für mich seltsamerweise immer die > Division durch 1024. > > Ich verstehe aber nicht warum und warum gerade 1024 der Teiler ist. > > -5566/1024 = -5,43...(stimmt) > 20000/1024 = 19,53... (stimmt auch) Und woher weisst Du, dass bei -5566 das Ergebnis, dass Du brauchst,-5,43 ist?
Thomas Z. schrieb: > Sind das vielleicht Werte von einem 10bit ADC? Kennst du einen 10-Bit ADC, der mit 20000 antwortet?
A. K. schrieb: > Kennst du einen 10-Bit ADC, der mit 20000 antwortet? wenn die 10bit left align sind, warum nicht?
A. K. schrieb: > Kennst du einen 10-Bit ADC, der mit 20000 antwortet? Stimmt, da hast du natürlich recht :D
Peter II schrieb: > wenn die 10bit left align sind, warum nicht? Probiers mal aus ...
:
Bearbeitet durch User
Ich möchte Werte aus einem Protokoll extrahieren. Die Daten liegen in Hex vor. Immer 4Byte ergeben einen Wert. Die 4 Byte habe ich zusammengefasst. L=a0*2^0+a1*2^8+a2*2^16+b3*2^24 Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes Ergebnis, aber warum? VG
top schrieb: > Die Daten liegen in Hex vor. Immer 4Byte ergeben einen Wert. also liegen sie NICHT als Hex vor. Sie liegen als Byte vor.
Das ist die Antwort auf deine Frage. Langfassung für Suchfaule: https://de.wikipedia.org/wiki/Festkommazahl
:
Bearbeitet durch User
>Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes >Ergebnis, aber warum? Warum? Ja, das ist so gewesen: Als eines Tages der Schreiner Ovid Kevin Müller-Katzenstein am Brunnen saß kam ein Floh vorbei. Der Floh hatte schlechte Laune, war aber gewillt, sich mit einem Pflaumenmußbrot mit Senf zufrieden zu geben, anstatt die Welt mit der universellen Konstante in den Abgrund zu reißen. Im Gegensatz zur allgemeinen Meinung nämlich ist die universelle Konstante kein Segen sondern ein Fluch. Aber das wusste damals niemand. Und so war der Schreiner Ovid Kevin Müller-Katzenstein der Mensch, der unwissen die Welt in den Abgrund riß. Er sah nämlich nicht hin. Dass heißt, er sah nach oben in die Wolken und dachte noch, dass die eine da, über dem Haus der Witwe Bollinger, die immer so gute Rostbratwürstel briet, irgendwie aussah wie ein Floh. Das er nur nach links unten, neben seinen rechten Schuh hätte schauen müssen, um einen echten Floh zu sehen und damit auch noch die Welt gerettet hätte, wußte er nicht. Nach der Wolke sah er noch den Nagel seines linken Daumens an, der eine Maniküre nötig gehabt hätte und dann kratzte er sich am Hals. Da hatte der Floh nämlich hingebissen, vor lauter Verzweiflung, nicht beachtet zu werden. Er wich dem rechten Zeigefinger des Schreiners Ovid Kevin Müller-Katzenstein geschicht aus und dachte: Jetzt zeig' ich's Euch. Da erfand er die Zahl, durch die von nun an jede andere Zahl geteilt werden musste, damit man das richtige Ergebnis erhielt. So war das, damals.
Ich les' hier immer Gleitkomma, Festkomma, ... Mach doch einfach Ergebnis = Wurstiges_Input >> 10. Da is nix mit Komma und dein Wert stimmt. Und der Prozi kann das richtig fix. Und sowieso ist die Frage wirklich der Hammer! "Nachts ist es kälter als draußen, und ich möchte verstehen, warum? Immer, wenn ich links gehe, dann Peng!". Ergibt alles keinen Sinn.
top schrieb: > Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes > Ergebnis, aber warum? Da mußt Du mal in der Beschreibung des bisher nicht genannten Protokolls nachlesen. In Deinen Kopf schauen können wir nicht. top schrieb: > -5566/1024 = -5,43...(stimmt) > 20000/1024 = 19,53... (stimmt auch) Also in C stimmt beides nicht. Du mußt mindestens einen Operanden nach float casten. Der Compiler kann ja nicht Deine Gedanken lesen, für ihn gilt: int / int = int.
Ok verstanden... Mal im ernst, warum schifftet man dann hier gerade um 10? VG
Die zur Analyse und Beantwortung der Frage nötige Aufforderung zur Offenlegung der Quelle/des Protokoll überliest du geflissentlich? Implizit also: Es fehlen alle Hintergrundinformationen. Daher tippe ich darauf, dass die von Außerirdischen gezwungen wurden, das um 10 Bit zu schieben.
top schrieb: > Mal im ernst, warum schifftet man dann hier gerade um 10? Weil das im Protokoll mal irgendwer so festgelegt hat?
top schrieb: > Mal im ernst, warum schifftet man dann hier gerade um 10? 1024=2^10 Warum shiftest du in Dezimalsystem um 3 wenn du durch 1000 dividieren willst? 1000=10^3
:
Bearbeitet durch User
Ich möchte Werte aus einem IP-Protokoll extrahieren. Immer 4Byte ergeben einen Wert. 255 155 100 0 Die 4 Byte habe ich zusammengefasst. L=a0*2^0+a1*2^8+a2*2^16+b3*2^24 Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes Ergebnis, aber warum? VG
top schrieb: > Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes > Ergebnis, aber warum? witziger Zufall. Ich muss durch 731 teilen, um mein gewünschtes Ergebnis zu bekommen. Ob das vielleicht daran liegt, dass ich mir ein anderes Ergebnis wünsche?
Weil dein Ergebnis offenbar von irgendwem so definiert wurde. Die Berechnung des Dezimalwerts deiner IP-Adresse sieht korrekt aus. Warum dein Ergbnis nun das Ganze durch 1024 geteilt sein soll, weiß immer noch niemand.
A. K. schrieb: > Vielleicht solltest du mal etwas über den Kontext der Frage verraten. > Dort nämlich dürfte die Antwort liegen. top schrieb: > ne Mit der Einstellung können wir den Thread vergessen...
top schrieb: > Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes > Ergebnis, aber warum? Weil das Nesthäkchen des Entwicklers vom Protokoll tags zuvor 10 Jahre alt wurde und der Entwickler sich mit Zweierpotenzen auskannte. So allmählich sollte eigentlich der Groschen gefallen sein. Andernfalls ist was in der Groschenfallmaschine kaputt.
:
Bearbeitet durch User
So ist sie, die Jugend von heute. Vielleicht fällt dem Thread-Ersteller die besagte Maschine mal auf den Kopf, löst dabei die Synapsenverknotung und hilft so beim Verständnis, wie viel Information zur Lösung einer Fragestellung denn nötig ist.
Da wohl keine reale Person in diesem extremen Maß intellektuell herausgefordert ist, wird es sich mit ziemlicher Sicherheit um einen Troll handeln.
Meinste? Na dann noch ein Lösungsansatz hintendran: Das endoplasmatische Retikulum schnürt Vesikel ab. Außerdem möchte ich wissen, was Diffusion durch eine semipermeable Membran ist.
Eventuell geht es um eine Subnetzmaske? /22 wären die letzten 10 Bits "egal"... https://de.wikipedia.org/wiki/Netzmaske
top schrieb: > Ich möchte Werte aus einem IP-Protokoll extrahieren. Aus welchem genau. IPv4? http://www.ietf.org/rfc/rfc791.txt IPv6? http://www.ietf.org/rfc/rfc2460.txt Oder die nächste schicht? tcp/ip? http://www.ietf.org/rfc/rfc793.txt > Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes > Ergebnis, aber warum? Das es im IP-Protokoll Zahlen mit Nachkomma gibt, ist mir neu. Woher hast du die Info, welches Resultat du haben möchtest? Ist es wirklich ein IP Protokoll? Spezifiziere: Genaues Protokoll, ALLE eingabewerte, Alle ausgangswerte, Quelle, Zeile.
nicht "Gast" schrieb: > Eventuell geht es um eine Subnetzmaske? /22 wären die letzten 10 Bits > "egal"... Vorsicht, es ist eine ganz blöde Idee, Host- und Netzadresse mittels Shift-Operationen zu trennen. Daß die Netzadresse ein durchgängiger Block von Bits in der "linken Hälfte" einer IPv4-Adresse ist, ist nur eine Empfehlung, keine zwingende Verpflichtung. Genau deswegen gibt's neben der CIDR-Schreibweise für Netzmasken auch die klassische als IP-Adresse. Nur die kann nämlich alle Fälle abbilden, auch die, die nicht der Empfehlung entsprechen. Und die Abtrennung von Netz und Host macht man so, wie sie auch die Hardware macht, denn das paßt immer, unabhängig von Endianess und der konkreten Netzwerkmaske: Netz=Adresse & Netzwerkmaske Host=Adresse & !Netzwerkmaske
top schrieb: > Ok verstanden... > > Mal im ernst, warum schifftet man dann hier gerade um 10? Ganz großes Kino. Lieber "top", deine Fragestellung hat dir auch nach zig Forumsbeiträgen keine Antwort geliefert. Warum? Es wurde doch klar, dass es sich um eine Zahl handelt, die einen 10-stelligen binären Nachkommaanteil enthält. Warum und wozu kann dir nicht mal der Allmächtige sagen, ohne dass du uns erklärst, wo deine "-5566" und "20000" herkommen, und was mit dieser Zahl gemacht werden soll. Ein Codebeispiel wäre hier zielführend, aus dem hervorgeht, wie diese Zahlen einer Variablen zugewiesen werden, und was weiter mit dieser Zahl passiert.
top schrieb: > Was für ein Ergebnis erhalte ich, wenn ich eine Integer Zahl durch 1024 > teile? ob ich das noch ein Mal erleben darf dass niemand auf eine solche Frage antwortet ...
@c-hater Hast Du so etwas jemals in der Praxis gesehen? Da findet man eher noch klassenbasierte Netze und Geräte (mit denen sich das natürlich gar nicht vertragen würde) als sowas...
top schrieb: > Wenn ich jetzt genau durch 1024 teile bekomme ich mein gewünschtes > Ergebnis, aber warum? Das liegt daran, dass die NSA deine Daten zu deiner eigenen Sicherheit verschlüsselt. Da der NSA Schlüssel Großbuchstaben, Kleinbuchstaben und Sonderzeichen enthalten muss hat man sich innerhalb der NSA auf den Schlüssel "Obama " geeinigt. In ASCII ist das: "O" = 0x4F = 79 "b" = 0x62 = 98 "a" = 0x61 = 97 "m" = 0x6D = 109 "a" = 0x61 = 97 " " = 0x20 = 32 79+98+97+109+97+32=512 Damit es nicht so leicht zu entschlüsseln ist wird das ganze jetzt noch um eine Bit geshiftet. Das enspricht Multiplikation mit 2. Also 512*2 = 1024. Daher sind alle deine Daten mit 1024 multipliziert, um für die NSA leicht auswertbar zu sein und dich gleichzeitig vor der Wahrheit zu schützen. Der Länder übergreifende Schlüssel mach dann den Austausch der Daten innerhalb der NSA leichter.
Arsch Gwaf schrieb: > Das liegt daran, dass die NSA ...... den > Schlüssel "Obama " geeinigt. In ASCII ist das: > "O" = 0x4F = 79 > "b" = 0x62 = 98 > "a" = 0x61 = 97 > "m" = 0x6D = 109 > "a" = 0x61 = 97 > " " = 0x20 = 32 > > 79+98+97+109+97+32=512 > > Damit es nicht so leicht zu entschlüsseln ist wird das ganze jetzt noch > um eine Bit geshiftet. Das enspricht Multiplikation mit 2. Also 512*2 = > 1024. YMMD :-)
Ich glaube er will eine dezimal abgepeicherte IP in Octette zerlegen...
Sven L. schrieb: > Ich glaube er will eine dezimal abgepeicherte IP in Octette zerlegen... ^^^^^^^ top schrieb: > Die Daten liegen in Hex vor. Immer 4Byte ergeben einen Wert. ^^^ Vielleicht sind sie aber auch oktal in den 4 Byte gespeichert, wer weiß? ;-)
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.