Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.justfr0zen.utils;
- import java.util.Arrays;
- public class FloatToString {
- public static void main(String[] args) {
- if (args.length != 1) {
- System.out.println("Benutze eine Bitabfolge als Argument.");
- return;
- }
- if (args[0].length() != 32) {
- System.out.println("Die Bitabfolge muss eine Länge von 32 Zeichen haben.");
- return;
- }
- if (getDecimalValue(args[0].toCharArray()) < 0) {
- System.out.println("Nutze nur Bits (0 und 1)");
- return;
- }
- int exponent = getDecimalValue(Arrays.copyOfRange(args[0].toCharArray(), 1, 9)) -127;
- final int mantissa = getDecimalValue(Arrays.copyOfRange(args[0].toCharArray(), 9, 32));
- final int multiplier = args[0].charAt(0) == '1' ? -1 : 1;
- boolean normal = true;
- if (exponent == -127) {
- exponent = 0;
- normal = false;
- }
- System.out.println(args[0]);
- System.out.println(exponent);
- System.out.println(mantissa);
- System.out.println((normal ? "" : "Denormalisiert ") + (multiplier * ((mantissa * 0.00000001) + 1) * Math.pow(2, exponent)));
- }
- private static int getDecimalValue(char[] binary) {
- int value = 0;
- for (int i = binary.length - 1; i >= 0; i--) {
- if (binary[i] != '1' && binary[i] != '0')
- return -1;
- value += Math.pow(2, binary.length - i - 1) * (binary[i] - '0');
- }
- return value;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement