Bestimmen Sie die Länge einer UTF-8-Byte-Sequenz anhand ihres ersten Bytes. Die folgende Tabelle zeigt, welche Bereiche jeder möglichen Länge zugeordnet sind:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Hinweise zu Lücken in der Tabelle: 0x80-0xBF sind Fortsetzungsbytes, 0xC0-0xC1 würde eine überlange, ungültige Sequenz starten, 0xF5-0xFF würde zu einem Codepunkt jenseits des Unicode-Maximums führen.
Schreiben Sie ein Programm oder eine Funktion, die das erste Byte einer UTF-8-Byte-Sequenz als Ein- und Ausgabe verwendet oder die Länge der Sequenz zurückgibt. I / O ist flexibel. Die Eingabe kann zum Beispiel eine Zahl, ein 8-Bit-Zeichen oder eine 1-Zeichen-Zeichenfolge sein. Sie können davon ausgehen, dass das erste Byte Teil einer gültigen Sequenz ist und in einen der obigen Bereiche fällt.
Das ist Code Golf. Die kürzeste Antwort in Bytes gewinnt.
Testfälle
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4