2 Übungen | |
→ | 2.6 Übung 5 |
Theorie |
Aufgabe: Modifikation einer Zahl |
Informieren Sie sich über Bitschiebe-Operatoren, Inkrement- und Dekrement-Operatoren, siehe Abschnitt Zuweisungen und Berechnungen.
/** @file ex049.c Uebungsaufgabe fuer Bitschiebe-Operatoren.
Nur unter Windows lauffaehig.
*/
/* Copyright (C) 2014-2017 - HS Schmalkalden. All rights reserved. */
#include <stdio.h>
#include "he-winkey.h"
/** Hauptprogramm.
@return 0 bei Erfolg.
*/
int
main(void)
{
unsigned wort = 1; /* Wort, dessen Bits verschoben werden */
int stelle = 0; /* Anzahl der Verschiebungen */
int key; /* Tasten-Code */
while(HE_WINKEY_ESC != (key = hsm_et_windows_key_get())) {
switch(key) {
case 'r': case 'R': { /* Schieben nach rechts */
wort = ???;
stelle ???;
printf("Stelle: %6d Wert: %u\n", stelle, wort);
} break;
case 'l': case 'L': { /* Schieben nach links */
wort = ???;
stelle ???;
printf("Stelle: %6d Wert: %u\n", stelle, wort);
} break;
default: {
printf("Falsche Taste! Zulaessig: l L r R ESC\n");
} break;
}
}
return 0;
}
/* vim: set ai sw=4 ts=4 expandtab : */
Eine vorzeichenlose Zahl, die zu Beginn auf 1 gesetzt ist, wird
durch Tastatureingaben geändert. Drücken der Tasten 'l' oder 'L'
bewirkt eine bitweise Verschiebung um ein Bit nach links, 'r' bzw.
'R' bewirkt eine bitweise Verschiebung um eine Stelle nach
rechts.
Mit der Escape-Taste wird das Programm beendet.
Nach jeder Manipulation wird der neue Zahlenwert ausgegeben sowie die Stelle in der sich das gesetzte Bit befindet (Zählung beginnt rechts am niederwertigsten Bit mit 0).
Vervollständigen/korrigieren Sie das Beispielprogramm, erstellen und testen Sie es!