Unten ist ein Ausschnitt meines Java-Codes.java - Erzwingen 4-stellige hexadezimale Darstellung einer Binärzahl
//converts a binary string to hexadecimal
public static String binaryToHex (String binaryNumber)
{
BigInteger temp = new BigInteger(binaryNumber, 2);
return temp.toString(16).toUpperCase();
}
Wenn ich Eingang „0000 1001 0101 0111“ (ohne Leerzeichen) als meinen String binäre_Zahl, der Rückgabewert 957. ist aber ideal, was ich will, ist 0957 statt nur 957. Wie kann ich sicher machen Pad mit Nullen, wenn Hex-Nummer nicht 4 Ziffern ist? Danke.
Nur darauf hingewiesen, dass (für die Lösung zum manuellen Auffüllen), wenn die Eingabezeichenfolge einem Hexadezimalwert mit mehr als 4 Ziffern entspricht, wird es nicht gepuffert werden. Aber Sie haben in Ihrem Kommentar bemerkt, dass dies für weniger als 4 Ziffern ist. –
@JoseCifuentes Die Anforderung bestand lediglich darin, mindestens 4 Ziffern zu erzwingen. Wenn mehr als 4, was sollte es tun? Inkremente von 2 können sinnvoll sein, aber in Schritten von 4? Exponenten von 2 (4,8,16,32, ...)? Es ist nicht definiert/angefordert, so dass dies nur deckt, was angefordert wurde. Oh, und FYI, * alle 3 * Beispiele machen das gleiche: Zero-Pad auf mindestens 4 Hex-Ziffern, aber erlauben so viele wie für größere Zahlen benötigt wird. – Andreas
Das ist in Ordnung.Ich dachte nur, dass der Anforderer aus der ursprünglichen Problembeschreibung die Ausgabe mit der ursprünglichen Anzahl von führenden Nullen in der binären Zeichenfolge korrelieren wollte (ist schließlich eine Zeichenfolge). So habe ich es interpretiert, daher meine Antwort. –