Skip to content

Latest commit

 

History

History
79 lines (59 loc) · 1.41 KB

convert_a_number_to_hexadecimal.md

File metadata and controls

79 lines (59 loc) · 1.41 KB

🔥 Number to Hex 🔥 || Simple Fast and Easy || with Explanation

Solution - 1

String toHex(int num) {
  return (num < 0)
      ? (num.toUnsigned(32)).toRadixString(16)
      : num.toRadixString(16);
}

Extra - Avoid It (Not-Optimized)

extension ToHex on int {
  String toHex() {
    return (this < 0)
        ? (this.toUnsigned(32)).toRadixString(16)
        : this.toRadixString(16);
  }
}

Solution - 2

String toHexString(int num) {
  if (num == 0) {
    return "0";
  }

  int n = num.toUnsigned(32);
  final String ref = "0123456789abcdef";

  String result = "";

  while (n != 0) {
    result = ref[n & 0xF] + result;
    n >>= 4;
  }

  return result;
}

Extra (Optimized Version - BitManipulation)

extension ToHex on int {
  String toHexString(int num) {
    if (num == 0) {
      return "0";
    }

    int n = num.toUnsigned(32);
    final String ref = "0123456789abcdef";

    String result = "";

    while (n != 0) {
      result = ref[n & 0xF] + result;
      n >>= 4;
    }

    return result;
  }
}

Bonus

To Use on Any Number In Our case we can use only on int. But for bonus I have implemented for both double as well as int. InShort For NUM use can use DART Generics if you want but not recommended