c-01-bits/README.md

53 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2026-06-08 20:43:30 +02:00
# c-01-bits
**Wichtig: Nur die Musterlösungen anzuschauen hat nicht
ansatzweise den gleichen Lerneffekt wie vorheriges Bearbeiten der Aufgaben.**
## Aufgabe 0: Intro (Übersetzen von C-Programmen)
### 0a)
Erstelle eine eigene Hallo-Welt.c Datei und kompiliere diese.
### 0b)
Anschließend soll ein `#define` benutzt werden, um ein Makro für die "Hallo-Welt" Expression zu erstellen. Diese Makro soll dann in einer extra Funktion genutzt werden, welche in der main-Funktion aufgerufen wird. Nutze zur Definition dieser neuen Funktion und des Makros eine eigene Header Datei (mit ifndef).
## Aufgabe 1: Variablen, Flow Control, Bitwise Shift (Programmfluss)
### 1a)
Schreibe die Funktion binaerzahl in der .c-Datei, welche eine Zahl zwischen
0 und 255 als Binärzahl ausgibt. Hierfür sollte der Bitwise Shift (<</>>) und
wenn nötig die Bitwise Operatoren (&,|,^,~) verwendet werden. Außerdem
sollen mindestens zwei verschiedene Datentyp aus stdint genutzt werden.
Ob für die Definition ein Funktionsprototyp oder
eine eigene Header Datei genutzt wird, ist hierbei egal.
### 1b)
Was passiert, wenn die Zahl größer als 255 ist?
2026-06-08 23:22:31 +02:00
-> Überlauf.
2026-06-08 20:43:30 +02:00
Passe die Funktion so an, dass auch größere Zahlen (0 bis 232-1) als Binärzahlen ausgegeben werden können.
## Aufgabe 2: Bitwise Operatoren
Was passiert, wenn die Zahl negativ ist?
2026-06-08 23:22:31 +02:00
-> bevor Aufgabe 2, immernoch ein Überlauf.
2026-06-08 20:43:30 +02:00
Erweitere die Funktion erneut, sodass auch negative Zahlen bearbeitet werden. Hierbei soll bei der Ausgabe erst ein Minus stehen und dahinter die positive Binärzahl. Beispiel:
Bitte gib eine Dezimalzahl ein: -3
-00000011
_Hinweis: Die negativen Zahlen werden im Zweierkomplement gespeichert. Es kann also hilfreich sein, eine Hilfsfunktion zu schreiben, welche das Zweierkomplement von Zahlen bestimmt._
2026-06-08 20:44:32 +02:00
---
2026-06-08 20:43:30 +02:00
_Zur Erinnerung:_
_Das Zweierkomplement wird gebildet, indem die Bits invertiert werden und anschließend 1 zur Zahl addiert wird._
2026-06-08 23:22:31 +02:00
_Hinweis:_
_Überlauf._