class BinaryRepresentation extends StandardRepresentation {

  public static final BinaryRepresentation BINARY_REPRESENTATION = new BinaryRepresentation();

  public static final String BYTE_PREFIX = "0b";

  /**
   * Returns binary the {@code toString} representation of the given object. It may or not the object's own
   * implementation of {@code toString}.
   * 
   * @param object the given object.
   * @return the {@code toString} representation of the given object.
   */
  @Override
  public String toStringOf(Object object) {
    if (hasCustomFormatterFor(object)) return customFormat(object);
    if (object instanceof Character) return toStringOf((Character) object);
    if (object instanceof Number) return toStringOf((Number) object);
    if (object instanceof String) return toStringOf(this, (String) object);
    return super.toStringOf(object);
  }

  protected String toStringOf(Representation representation, String s) {
    return concat("\"", representation.toStringOf(s.toCharArray()), "\"");
  }

  @Override
  protected String toStringOf(Number number) {<FILL_FUNCTION_BODY>}

  protected String toStringOf(Byte b) {
    return toGroupedBinary(Integer.toBinaryString(b & 0xFF), 8);
  }

  protected String toStringOf(Short s) {
    return toGroupedBinary(Integer.toBinaryString(s & 0xFFFF), 16);
  }

  protected String toStringOf(Integer i) {
    return toGroupedBinary(Integer.toBinaryString(i), 32);
  }

  @Override
  protected String toStringOf(Long l) {
    return toGroupedBinary(Long.toBinaryString(l), 64);
  }

  @Override
  protected String toStringOf(Float f) {
    return toGroupedBinary(Integer.toBinaryString(Float.floatToIntBits(f)), 32);
  }

  protected String toStringOf(Double d) {
    return toGroupedBinary(Long.toBinaryString(Double.doubleToRawLongBits(d)), 64);
  }

  @Override
  protected String toStringOf(Character character) {
    return concat("'", toStringOf((short) (int) character), "'");
  }

  private static String toGroupedBinary(String value, int size) {
    return BYTE_PREFIX + NumberGrouping.toBinaryLiteral(toBinary(value, size));
  }

  private static String toBinary(String value, int size) {
    return String.format("%" + size + "s", value).replace(' ', '0');
  }
}

    if (number instanceof Byte) return toStringOf((Byte) number);
    if (number instanceof Short) return toStringOf((Short) number);
    if (number instanceof Integer) return toStringOf((Integer) number);
    if (number instanceof Long) return toStringOf((Long) number);
    if (number instanceof Float) return toStringOf((Float) number);
    if (number instanceof Double) return toStringOf((Double) number);
    return number == null ? null : number.toString();
  
<methods>public non-sealed void <init>() ,public static int getMaxElementsForPrinting() ,public static int getMaxLengthForSingleLineDescription() ,public static int getMaxStackTraceElementsDisplayed() ,public static void registerFormatterForType(Class<T>, Function<T,java.lang.String>) ,public static void removeAllRegisteredFormatters() ,public static void resetDefaults() ,public static void setMaxElementsForPrinting(int) ,public static void setMaxLengthForSingleLineDescription(int) ,public static void setMaxStackTraceElementsDisplayed(int) ,public java.lang.String toString() ,public java.lang.String toStringOf(java.lang.Object) ,public java.lang.String unambiguousToStringOf(java.lang.Object) <variables>private static final Class<?>[] BLACKLISTED_ITERABLE_CLASSES,private static final java.lang.String DEFAULT_END,private static final java.lang.String DEFAULT_MAX_ELEMENTS_EXCEEDED,private static final java.lang.String DEFAULT_START,public static final java.lang.String ELEMENT_SEPARATOR,public static final java.lang.String ELEMENT_SEPARATOR_WITH_NEWLINE,static final java.lang.String INDENTATION_AFTER_NEWLINE,static final java.lang.String INDENTATION_FOR_SINGLE_LINE,private static final java.lang.String NULL,public static final org.assertj.core.presentation.StandardRepresentation STANDARD_REPRESENTATION,private static final java.lang.String TUPLE_END,private static final java.lang.String TUPLE_START,private static final Class<?>[] TYPE_WITH_UNAMBIGUOUS_REPRESENTATION,private static final Map<Class<?>,Function<?,? extends java.lang.CharSequence>> customFormatterByType,private static int maxElementsForPrinting,private static int maxLengthForSingleLineDescription,private static int maxStackTraceElementsDisplayed