Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. package de.justfr0zen.utils;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class FloatToString {
  6. public static void main(String[] args) {
  7. if (args.length != 1) {
  8. System.out.println("Benutze eine Bitabfolge als Argument.");
  9. return;
  10. }
  11.  
  12. if (args[0].length() != 32) {
  13. System.out.println("Die Bitabfolge muss eine Länge von 32 Zeichen haben.");
  14. return;
  15. }
  16.  
  17. if (getDecimalValue(args[0].toCharArray()) < 0) {
  18. System.out.println("Nutze nur Bits (0 und 1)");
  19. return;
  20. }
  21.  
  22. int exponent = getDecimalValue(Arrays.copyOfRange(args[0].toCharArray(), 1, 9)) -127;
  23. final int mantissa = getDecimalValue(Arrays.copyOfRange(args[0].toCharArray(), 9, 32));
  24. final int multiplier = args[0].charAt(0) == '1' ? -1 : 1;
  25.  
  26. boolean normal = true;
  27.  
  28. if (exponent == -127) {
  29. exponent = 0;
  30. normal = false;
  31. }
  32.  
  33. System.out.println(args[0]);
  34. System.out.println(exponent);
  35. System.out.println(mantissa);
  36.  
  37. System.out.println((normal ? "" : "Denormalisiert ") + (multiplier * ((mantissa * 0.00000001) + 1) * Math.pow(2, exponent)));
  38. }
  39.  
  40. private static int getDecimalValue(char[] binary) {
  41. int value = 0;
  42.  
  43. for (int i = binary.length - 1; i >= 0; i--) {
  44. if (binary[i] != '1' && binary[i] != '0')
  45. return -1;
  46.  
  47. value += Math.pow(2, binary.length - i - 1) * (binary[i] - '0');
  48. }
  49. return value;
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement