BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- Struktogramm: Dezimal- zu Binärzahlen (http://www.black-board.net/thread.php?threadid=10077)


Geschrieben von DaddyDj am 29.01.2003 um 19:16:

  Struktogramm: Dezimal- zu Binärzahlen

Kann mir einer helfen ?
Ich muss ein Struktogramm für eine Umwandlung von Dezimahlen Zahlen in Binäre Zahlen machen... Kann mir einer da helfen ???



Geschrieben von Compuholic am 29.01.2003 um 19:32:

 

Ich gebe Dir mal den groben Ablauf für so etwas. Zeichnen mußt Du das dann natürlich selber.

1. Durch 2 teilen
2. (ganzzahligen) Divisionsrest an die Zielzeichenkette anhängen
3. Ist das (ganzzahlige) Ergebnis der Division = 0
4. Wenn Nein: Mit dem Ergebnis bei 1 weitermachen
5. Wenn Ja: Zielzeichenkette ausgeben
6. Programm beenden.

[edit]
So, mir war grad langweilig und hab mal dafür ein kleines Programm entworfen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
	int	wDivRst;
	int	wDivVal;
	char	cTarget[20];
	int	wStrPointer = 0;
	int	wDezZahl = 0;
	char	cXChg;

	if (argc < 2)
	{
		printf("Das Programm erwartet folgenden Syntax:\n    d2b <Dezimalzahl>\n\n");
		exit(0);
	}

	wDezZahl = atoi(argv[1]);
	wDivVal = wDezZahl;
	while (wDivVal != 0)
	{
		wDivRst = wDivVal % 2;
		wDivVal /= 2;
		cTarget[wStrPointer] = (char)(wDivRst + 48);
		wStrPointer++;
	}
	wDivRst = 0;
	while (wDivRst < wStrPointer - 1)
	{
		cXChg = cTarget[wDivRst];
		cTarget[wDivRst] = cTarget[wStrPointer - wDivRst - 1];
		cTarget[wStrPointer - wDivRst - 1] = cXChg;
		wDivRst++;
	}
	cTarget[wStrPointer] = (char)0;
	printf("%d ist in binärer Schreibweise: %s\n\n", wDezZahl, cTarget);
	return 0;
}

[/edit]


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH