📄 bigint.java
字号:
import java.math.BigInteger;
/**
* Ein BigInt-Objekt stellt eine beliebig gro遝 Ganzzahl dar.
* @author Thorsten Gutbrod
* @version 1.0
*/
public class BigInt extends BigInteger{
/**
* Erstellt ein neues BigInt-Objekt.
* @param zahl Ganzzahl als String
*/
public BigInt(String zahl) {
super(zahl); // 躡ergibt den String an den BigInteger-Konstruktor
/* Falls eine Ganzzahl kleiner als 0 erzeugt wurde, dann muss eine
* NumberFormatException geworfen werden.
*/
BigInteger test = new BigInteger(zahl);
if (test.compareTo(new BigInteger("0")) == -1) { // negative Zahl
/* negative Zahl => werfe NumberFormatException
*/
throw new NumberFormatException("Negative Ganzzahlen sind nicht"
+" erlaubt!");
}
} // end constructor BigInt
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl kleiner als die 黚ergebene
* ist, ansonsten false
*/
public boolean lt(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==-1 ? true : false; // lt
return rResult; // gib Ergebnis zur點k
} //end lt
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl gr鲞er oder gleich der 黚ergebenen
* ist, ansonsten false
*/
public boolean ge(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==-1 ? false : true; // ge
return rResult; // gib Ergebnis zur點k
} //end ge
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl gr鲞er als die 黚ergebene
* ist, ansonsten false
*/
public boolean gt(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==1 ? true : false; // gt
return rResult; // gib Ergebnis zur點k
} //end gt
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl kleiner oder gleich der 黚ergebenen
* ist, ansonsten false
*/
public boolean le(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==1 ? false : true; // le
return rResult; // gib Ergebnis zur點k
} //end le
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl gleich der 黚ergebenen
* ist, ansonsten false
*/
public boolean eq(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==0 ? true : false; // eq
return rResult; // gib Ergebnis zur點k
} //end eq
/**
* Vergleicht die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* vergleichen ist.
* @return true - falls aktuelle Zahl ungleich der 黚ergebenen
* ist, ansonsten false
*/
public boolean ne(BigInt zahl) {
boolean rResult; // result f黵 return
int result = this.compareTo(zahl); // vorl鋟figer Vergleich
rResult = result==0 ? false : true; // ne
return rResult; // gib Ergebnis zur點k
} //end ne
/**
* Subtrahiert die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl
* und gibt die Differenz oder bei negativem Ergebnis die BigInt-Zahl 0
* zur點k. (Modifizierte Differenz)
* @param zahl Die 黚ergebene BigInt-Zahl, die von der aktuellen zu
* subtrahieren ist.
* @return Ergebnis der modifizierten Differenz.
*/
public BigInt subtract(BigInt zahl) {
return new BigInt(super.subtract(zahl).max(new BigInt("0")).toString());
} // end subtract
/**
* Addiert die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl
* und gibt die Summe zur點k.
* @param zahl Die 黚ergebene BigInt-Zahl, die zu der aktuellen zu
* addieren ist.
* @return Ergebnis der Addition.
*/
public BigInt add(BigInt zahl) {
return new BigInt(super.add(zahl).toString());
} // end add
/**
* Multipliziert die aktuelle BigInt-Zahl mit der 黚ergebenen BigInt-Zahl
* und gibt das Produkt zur點k.
* @param zahl Die 黚ergebene BigInt-Zahl, die mit der aktuellen zu
* multiplizieren ist.
* @return Ergebnis der Multiplikation.
*/
public BigInt multiply(BigInt zahl) {
return new BigInt(super.multiply(zahl).toString());
} // end muliply
public BigInt andNot(BigInt zahl){
return new BigInt(super.andNot(zahl).toString());
}
public BigInt or(BigInt zahl){
return new BigInt(super.or(zahl).toString());
}
/*public BigInt shiftLeft(int n)
{
BigInteger big=new BigInteger();
big=super.shiftLeft(n);
return new BigInt(big.toString());
}
/*
public BigInt shiftRight(int n)
{
BigInteger big=super.shiftRight(n);
return new BigInt(big.toString());
}
/**
* Dividiert die aktuelle BigInt-Zahl durch die 黚ergebenen BigInt-Zahl
* und gibt das Ergebnis der Ganzzahldivision zur點k.<br>
* Falls durch Null dividiert wird, so ist das Ergebnis ebenfalls Null.
* @param zahl Die 黚ergebene BigInt-Zahl, durch welche die aktuelle zu
* dividieren ist.
* @return Ergebnis der Division.
*/
public BigInt divide(BigInt zahl) {
BigInt returnZahl = zahl; // die R點kgabe entspricht dem Teiler
/* falls nicht durch 0 geteilt wird,
*/
if (zahl.ne(new BigInt("0"))) {
returnZahl =new BigInt(super.divide(zahl).toString());
}
return returnZahl;
} // end divide
} // end class BigInt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -