All pastes #1763283 Raw Edit

Mine

public java v1 · immutable
#1763283 ·published 2010-01-23 21:29 UTC
rendered paste body
class LiczbaException extends Exception {	LiczbaException(String msg) {		super(msg);	}}public class Liczba {	private int n=0;	private char[] znaki = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };	private char val2sign(int val) throws LiczbaException {		//sprawdzamy czy wartosc val jest w naszym zasiegu		if (!(val<znaki.length && val>=0)) {			throw new LiczbaException("Proba pobrania znaku spoza zakresu!");		}		return znaki[val];	}	private int sign2val(char znak) {		for(int i=0;i<znaki.length;i++) {			if (znaki[i] == znak) {				return i;			}		}		//zwracamy kod bledu		return -1;	}	public Liczba() {	}	public Liczba(int n) {		this.n = n;	}	public Liczba(String n, int podstawa) throws LiczbaException {		int t;		if (podstawa<2 || podstawa > (10+znaki.length)) {			throw new LiczbaException(podstawa+" nie jest obslugiwana podstawa systemu liczbowego.");		}		System.out.print(n);		for(int i=0; i<n.length(); i++) {			t = sign2val(n.charAt(i));			if (t<podstawa && t!=-1) {				this.n = this.n*podstawa + t;			} else {				throw new LiczbaException(n+" nie jest poprawna liczba w systemie o podstawie "+podstawa);			}		}	}	public String zapis(int podstawa) throws LiczbaException {		if (podstawa<=1) {			throw new LiczbaException("Liczba "+podstawa+" nie jest prawidlowa podstawa systemu liczbowego.");		} else if (podstawa == 10) 			return String.valueOf(n);		String temp, liczba="";		int n = this.n;		int r;		while(n>0) {			r = n % podstawa;			try {				temp = Character.toString(val2sign(r));			} catch (LiczbaException ex) {				throw new LiczbaException("Brak danych na temat znakow wystepujacych w systemie o podstawie "+podstawa+".");			}			liczba = temp.concat(liczba);			n=n/podstawa;		}		return liczba;	}	}