![]() |
Frage zu 2 Bytes
hallö,
sagen wir mal ich habe ein Smallint und fülle die 2 bytes mit dem wert "3":
Delphi-Quellcode:
so zeigt mir showmessage "771" an.
procedure TForm1.Button1Click(Sender: TObject);
var i: SmallInt; begin FillChar(i, SizeOf(i), 3); ShowMessage(IntToStr(i)); end; In meinem Buch steht das die Rechning folgende ist: Zitat:
ich versteh zum beispiel nicht wieso 2mal 3, also einmal *3 und einmal +3 |
Re: Frage zu 2 Bytes
Moin Pseudemys Nelsoni,
mit Deinem FillChar füllst Du jedes Byte des Smallint Wertes mit 3. Hex Dez 0303 = 0*16^3 + 3*16^2 + 0*16^1 + 3*16^0 = 0 + 768 + 0 + 3 = 771 |
Re: Frage zu 2 Bytes
Mit FillChar füllst du jedes Byte mit der Zahl, die du angegeben hast, also in diesem Fall 3 (oder 11 binär)
Also, unsere 2 Byte sehen so aus:
Code:
Wenn man das zusammenzählt, gibt es 1 * 2^0 + 1* 2^1 + 1 * 2^8 + 1 * 2^9 = 3 + (778) = 3 + 256 * 3.
00000011 00000011
Oder anders: Da das erste Byte (das höherwertigere Byte) 8 Bit nach links verschoben ist, musst du die Zahl mit 2^8=256 multiplizieren. Das rechte Byte ist um 0 Bit verschoben. 2^0=1, also bleibt die Zahl unverändert. Hättest du drei Byte, müsstest du rechnen 3 + (2^8 * 3) + (2^16 * 3) = 3 + 256 * 3 + 65536 * 3. |
Re: Frage zu 2 Bytes
Also, du hast einen Smallint. Ich stelle ihn jetzt mal in Big Endian dar:
Code:
Zwei Nullen stehen also für ein Byte. Du schreibst jetzt jetzt in jedes einzelne Byte eine 3 statt eine 0.
Wertigkeit 256^1 256^0
-------------------------- Ziffer 0 0
Code:
Damit ist die Zahl, die du bekommst, im Dezimalsystem 3*256^1 + 3*256^0 = 768 + 3 = 771.
Wertigkeit 256^1 256^0
-------------------------- Ziffer 3 3 PS. Zur Verdeutlichung nochmal eine Zahl im Dezimalsystem:
Code:
7*10^2 + 7*10^1 + 1*10^0 = 700 + 70 + 1 = 771
Wertigkeit 10^2 10^1 10^0
----------------------------- Ziffer 7 7 1 |
Re: Frage zu 2 Bytes
Danke Leute, ich werds nochn paar mal durchlesen *gg*,
auch dir danke, d3g, das hilft mir schon weiter :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz