Mój pierwszy raz… z Javą :-)

Ostat­nio nie pisuję za dużo na blogu z prostej przy­czyny: nie mam czasu. A to dlatego, że „zachciało mi się” studiów pody­plo­mo­wych. Co drugi week­end zajęty i nie ma kiedy pisać :-(

Jako iż na studiach wałku­jemy Javę, to pomy­śla­łem sobie, że „dla sportu” strzelę sobie jakiś prosty kod. Zrobi­łem prze­licz­nik liczb całko­wi­tych w syste­mie dzie­sięt­nym na binarny metodą dzie­le­nia przez 2 i zapa­mię­ty­wa­nia reszty z dzie­le­nia. Odwra­camy kolej­ność zapa­mię­ta­nych reszt i powstaje nam piękna liczba binarna :-)

Przy­kła­dowe użycie dla liczby 13:
Wpisz liczbe calkowita do zamiany na system dwojkowy
13
Dziele 13 przez 2 wyszlo 6, reszty 1
Dziele 6 przez 2 wyszlo 3, reszty 0
Dziele 3 przez 2 wyszlo 1, reszty 1
Dziele 1 przez 2 wyszlo 0, reszty 1

Szukana liczba w syste­mie binar­nym to 1101
Poni­żej podaję cały kod źródłowy (nie śmiać się z ilości doku­men­ta­cji), może komuś się przyda.

import java.io.*;

public class PrzelicznikBinarny {
	/**
	 * Metoda zamienia podana liczbe calkowita na binarna.
	 * @param liczba - liczba calkowita do zamiany na binarna
	 * @return zwraca ciag zawierajacy wyniki kolejnych dzielen liczb i wynik koncowy
	 */
	static String liczBinarna (int liczba) {
		// inicjalizacja zmiennych
		String ciag = "";
		String binarna = "";
		int reszta;
		// petla z duzym "zapasem" wykonan
		for (int i=1 ; i<1000 ; i++) {
			// licz reszte z dzielenia przez 2
			reszta = liczba % 2;
			// konstruuj ciag opisowy
			ciag += "Dziele " + liczba + " przez 2";
			// jezeli reszta wyszla 1 to zmniejsz cala liczbe o 1
			if (reszta == 1) liczba--;
			// dzielenie liczby
			liczba = liczba / 2;
			// cd ciagu opisowego
			ciag += " wyszlo " + liczba + ", reszty " + reszta + "\n";
			// dodaj reszte do ciagu wynikowego
			binarna += reszta;
			// wyjscie z petli jezeli nie ma juz czego dzielic
			if (liczba == 0) break;
		}
		// odwrocenie ciagu wynikowego
		StringBuffer odwroc = new StringBuffer(binarna).reverse();
		// sklej ciag opisowy z wynikowym i wypluj
		return ciag + "\nSzukana liczba w systemie binarnym to " + odwroc;
	}

	// prosta metoda pytajaca o wpisanie liczby z klawiatury
	public static void main(String[] args) {
		try {
			System.out.println("Wpisz liczbe calkowita do zamiany na system dwojkowy");
			int calkowita;
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			calkowita = Integer.parseInt(in.readLine());
			if (calkowita < 0) {
				System.out.println("Wpisz liczbe dodatnia");
			} else {
				System.out.println(liczBinarna(calkowita));
			}
		}
		catch (IOException e) {
		}
	}
}

Podobne wpisy:

  1. Pierw­szy projekt WWW zrealizowany :-)
  2. Śpie­chu liczy zawar­tość alko­holu w drinkach
  3. O peha­powcu, który chciał zostać javowcem
  4. Compu­ting file hashes using Scala

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <p> <pre lang="" line="" escaped=""> <q cite=""> <strike> <strong>