Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package converter;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.Scanner;
- import javafx.scene.input.KeyCode;
- /**
- *
- * @author Acer
- */
- public class Conversions {
- @Checked
- public static String decimalToBinary(String decimal){
- if(decimal.length() == 0)
- return "";
- for(int i = 0;i < decimal.length();i++)
- if(!Utilities.isDecimalDigit(decimal.charAt(i)))
- return "Error!";
- if(decimal.charAt(0) == '-')
- return Long.toBinaryString(Long.parseLong(decimal));
- switch(decimal){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- long value = Long.parseLong(decimal);
- String rep = "";
- while(value > 0){
- rep += (value % 2);
- value /= 2;
- }
- return Utilities.reverse(rep);
- }
- }
- @Checked
- public static String decimalToOctal(String decimal){
- if(decimal.length() == 0)
- return "";
- for(int i = 0;i < decimal.length();i++)
- if(!Utilities.isDecimalDigit(decimal.charAt(i))){
- System.out.println("Error in decimalToOctal");
- return "Error!";
- }
- if(decimal.charAt(0) == '-')
- return Long.toOctalString(Long.parseLong(decimal));
- switch(decimal){
- case "0":
- return "0";
- case "1":
- return "1";
- case "2":
- return "2";
- case "3":
- return "3";
- case "4":
- return "4";
- case "5":
- return "5";
- case "6":
- return "6";
- case "7":
- return "7";
- default:
- long value = Long.parseLong(decimal);
- String rep = "";
- while(value > 0){
- rep += (value % 8);
- value /= 8;
- }
- return Utilities.reverse(rep);
- }
- }
- @Checked
- public static String decimalToHexadecimal(String decimal){
- if(decimal.length() == 0)
- return "";
- for(int i = 0;i < decimal.length();i++)
- if(!Utilities.isDecimalDigit(decimal.charAt(i))){
- System.out.println("Error in decimalToHexadecimal");
- return "Error!";
- }
- if(decimal.charAt(0) == '-')
- return Long.toHexString(Long.parseLong(decimal));
- switch(decimal){
- case "0":
- return "0";
- case "1":
- return "1";
- case "2":
- return "2";
- case "3":
- return "3";
- case "4":
- return "4";
- case "5":
- return "5";
- case "6":
- return "6";
- case "7":
- return "7";
- case "8":
- return "8";
- case "9":
- return "9";
- case "10":
- return "A";
- case "11":
- return "B";
- case "12":
- return "C";
- case "13":
- return "D";
- case "14":
- return "E";
- case "15":
- return "F";
- default:
- long value = Long.parseLong(decimal);
- String rep = "";
- while(value > 0){
- rep += Utilities.toHexadecimalDigit((int) (value % 16));
- value /= 16;
- }
- return Utilities.reverse(rep);
- }
- }
- @Checked
- public static String binaryToDecimal(String binary){
- if(binary.length() == 0)
- return "";
- for(int i = 0;i < binary.length();i++)
- if(!Utilities.isBinaryDigit(binary.charAt(i)))
- return "Error!";
- switch(binary){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- binary = Utilities.reverse(binary);
- long result = 0;
- for(int i = 0;i < binary.length();i++)
- if(binary.charAt(i) != '0')
- result += (long) Math.pow(2, i);
- return String.valueOf(result);
- }
- }
- @Checked
- public static String binaryToOctal(String binary){
- if(binary.length() == 0)
- return "";
- for(int i = 0;i < binary.length();i++)
- if(!Utilities.isBinaryDigit(binary.charAt(i)))
- return "Error!";
- switch(binary){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- return decimalToOctal(binaryToDecimal(binary));
- }
- }
- @Checked
- public static String binaryToHexadecimal(String binary){
- if(binary.length() == 0)
- return "";
- for(int i = 0;i < binary.length();i++)
- if(!Utilities.isBinaryDigit(binary.charAt(i)))
- return "Error!";
- switch(binary){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- return decimalToHexadecimal(binaryToDecimal(binary));
- }
- }
- @Checked
- public static String octalToDecimal(String octal){
- if(octal.length() == 0)
- return "";
- for(int i = 0;i < octal.length();i++)
- if(!Utilities.isOctalDigit(octal.charAt(i))){
- System.out.println("Error in decimalToHexadecimal");
- return "Error!";
- }
- switch(octal){
- case "0":
- return "0";
- case "1":
- return "1";
- case "2":
- return "2";
- case "3":
- return "3";
- case "4":
- return "4";
- case "5":
- return "5";
- case "6":
- return "6";
- case "7":
- return "7";
- default:
- octal = Utilities.reverse(octal);
- long result = 0;
- Iterator<Character> it = Utilities.stringIterator(octal);
- int x = 0;
- while(it.hasNext())
- result += (long) Math.pow(8, x++) * Character.digit(it.next(), 10);
- return String.valueOf(result);
- }
- }
- @Checked
- public static String octalToBinary(String octal){
- if(octal.length() == 0)
- return "";
- for(int i = 0;i < octal.length();i++)
- if(!Utilities.isOctalDigit(octal.charAt(i)))
- return "Error!";
- switch(octal){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- ArrayList<StringBuilder> groups = new ArrayList<>();
- for(int i = 0;i < octal.length();i++){
- StringBuilder current = new StringBuilder( decimalToBinary(String.valueOf(octal.charAt(i))) );
- if(i > 0){
- while(current.length() < 3)
- current.insert(0, '0');
- }
- groups.add(current);
- }
- String result = "";
- result = groups.stream().map((elem) -> elem.toString()).reduce(result, String::concat);
- return result;
- }
- }
- @Checked
- public static String octalToHexadecimal(String octal){
- return decimalToHexadecimal( octalToDecimal(octal) );
- }
- @Checked
- public static String hexadecimalToDecimal(String hex){
- if(hex.length() == 0)
- return "";
- for(int i = 0;i < hex.length();i++)
- if(!Utilities.isHexadecimalDigit(hex.charAt(i))){
- System.out.println("Error in hexadecimalToDecimal");
- return "Error!";
- }
- switch(hex){
- case "0":
- return "0";
- case "1":
- return "1";
- case "2":
- return "2";
- case "3":
- return "3";
- case "4":
- return "4";
- case "5":
- return "5";
- case "6":
- return "6";
- case "7":
- return "7";
- case "8":
- return "8";
- case "9":
- return "9";
- case "A":
- case "a":
- return "10";
- case "B":
- case "b":
- return "11";
- case "C":
- case "c":
- return "12";
- case "D":
- case "d":
- return "13";
- case "E":
- case "e":
- return "14";
- case "F":
- case "f":
- return "15";
- default:
- hex = Utilities.reverse(hex);
- long result = 0;
- for(int i = 0;i < hex.length();i++)
- result += (long) (Math.pow(16, i) * Utilities.toDecimalValue(hex.charAt(i)));
- return String.valueOf(result);
- }
- }
- @Checked
- public static String hexadecimalToBinary(String hex){
- if(hex.length() == 0)
- return "";
- for(int i = 0;i < hex.length();i++)
- if(!Utilities.isHexadecimalDigit(hex.charAt(i)))
- return "Error!";
- switch(hex){
- case "0":
- return "0";
- case "1":
- return "1";
- default:
- ArrayList<StringBuilder> groups = new ArrayList<>();
- for(int i = 0;i < hex.length();i++){
- StringBuilder current = new StringBuilder( decimalToBinary( String.valueOf( Utilities.toDecimalValue(hex.charAt(i)) ) ) );
- if(i > 0){
- while(current.length() < 4)
- current.insert(0, '0');
- }
- groups.add(current);
- }
- String result = "";
- result = groups.stream().map((elem) -> elem.toString()).reduce(result, String::concat);
- return result;
- }
- }
- @Checked
- public static String hexadecimalToOctal(String hex){
- return decimalToOctal( hexadecimalToDecimal(hex) );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement