Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Bits (Datentypen, Variablen und Ausdrücke)

Wie viele Bits benötige ich, um 365 (bzw. 3, 9, 2000, 5000, 100 000) mögliche Werte zu
speichern?

Beispiel: Um 200 mögliche Werte zu speichern, benötigen wir 8 Bits, denn mit 7 Bits sind lediglich 128 Zustände möglich. Deshalb erhöht sich die Größenordnug auf 8 Bits, womit sich dann maximal 256 Zustände abspeichern lassen.

1 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (1)

jensen 10. November 2015 15:56   reply report
Hallo zusammen,
wäre spannend, in der Verifikation noch die Anzahl Bits für die Zahl 0 abzufragen :)

7 Lösung(en)

import java.util.Scanner;

/**
 * Wie viele Bits benötige ich?
 * @author Philipp Gressly (phi AT gressly DOT ch)
 */
public class WieVieleBits {
  public static void main(String[] args) {
    new WieVieleBits().top();  
  }
  
  void top() {
      long zustaende;
      zustaende  = lies("Anzahl Zustände, die zu modellieren sind");
      int   bits = berechneBits(zustaende);
      ausgabe(zustaende, bits);
  }

 /**
  * Berechnet die Anzahl der Bits, die nötig sind,
  * um eine vorgegebene Anzahl Zustände zu codieren.
  * Beispielsweise benötige ich 8 Bits, um 256 
  * Zustände zu modellieren, jedoch bereits 9 Bits,
  * um 257 Zustände zu erfassen.
  */
  int berechneBits(long zustaende) {
    int bits = 0;
    zustaende = zustaende - 1;
    while(zustaende > 0) {
        bits      = bits + 1;
        // Ganzzahldivision:
        zustaende = zustaende / 2; 
    }
    return bits;
  }

  void ausgabe(long zustaende, int bits) {
    System.out.print("Für " + zustaende);
    System.out.print(" Zustände braucht es ");
    System.out.print(bits + " Bit");
    if(bits != 1) {
        System.out.print("s"); // Mehrzahl
    }
    System.out.println(".");
  }

  Scanner sc = new Scanner(System.in);
  long lies(String frage) {
    System.out.println(frage + ":");
    return sc.nextLong();
  }
 
} // end of class WieVieleBits
                
program Au1P4 (input, output);

	type
	tBit = 0..maxint;
	tZustaende = 0..maxint;

	var
	Bit : tBit;
	Zustaende : tZustaende;

begin
	write('Zustaende: ');
	readln(Zustaende);
	Bit := 0;
	Zustaende := Zustaende - 1;
	repeat
		Zustaende := Zustaende div 2;
		Bit := Bit + 1;
	until Zustaende = 0;
	writeln('Ergebnis: ', Bit, ' Bit');
end.

                

Lösung von: Name nicht veröffentlicht


#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>


int main()
{
	int iZeichen = 2;
	int iBit = 1;
	int iEingabe;

	printf("Bitte geben sie die Zeichenanzahl ein: ");
	scanf_s("%i", &iEingabe);
	fflush(stdin);

	while(iBit <= 64) {
		if(iEingabe <= iZeichen) {
			printf("\nBenoetigte Bit  : %i", iBit);
			printf("\nMaximale Zeichen: %i", iZeichen);

			getchar();
			return 0;
		} else {
			iZeichen *= 2;
			iBit += 1;
		}
	}

	getchar();
	return 0;
}

                

Lösung von: Elias Zech (Optics Balzers)

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Beispiel mit einfachem Coding
Dezimalzahl = int(raw_input("Für welche Zahl wird die Anzahl Bits gesucht? "))
Potenz = 1
anzahlBits = 0
while Potenz <= Dezimalzahl:
	anzahlBits = anzahlBits + 1
	Potenz = Potenz * 2
if anzahlBits == 0:			# für eine 0 wird auch ein Bit benötigt
	anzahlBits = 1
print"Es werden",anzahlBits,"Bits für die Zahl",Dezimalzahl,"benötigt."
                

Lösung von: J. Reppe ()

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Beispiel mit Python Binärfunktion
Dezimalzahl = int(raw_input("Für welche Zahl wird die Anzahl Bits gesucht? "))
binaerwert = bin(Dezimalzahl)
print"Es werden",len(binaerwert[2:]),"Bits für die Zahl",Dezimalzahl,"benötigt."
                

Lösung von: J. Reppe ()

import math

x = [365, 3, 9, 2000, 5000, 100000]
y = 0

for i in x:
    print(math.ceil(math.log2(x[y])))
    y += 1
                

Lösung von: Name nicht veröffentlicht

function sayBitLength(num) {
  console.log(`Bitlänge für ${num}: ${num.toString(2).length}`);
}

let nums = [0, 3, 9, 365, 2000, 5000, 1e5];
for (n in nums) sayBitLength(nums[n]);
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

Verifikation/Checksumme:

Lösung: Aufgerundeter Zweierlogarithmus

Anzahl Bits = Aufrunden( Log2 (Anzahl Zustände))

  • 365 -> 9
  • 3 -> 2
  • 9 -> 4
  • 2000 -> 11
  • 5000 -> 13
  • 100 000 -> 17

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: xjyi-extf
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Zu Aufgabenblatt hinzufügen