Determine la longitud de una secuencia de bytes UTF-8 dado su primer byte. La siguiente tabla muestra qué rangos se asignan a cada longitud posible:
Range Length
--------- ------
0x00-0x7F 1
0xC2-0xDF 2
0xE0-0xEF 3
0xF0-0xF4 4
Notas sobre los espacios en la tabla: 0x80-0xBF son bytes de continuación, 0xC0-0xC1 comenzaría una secuencia demasiado larga e inválida, 0xF5-0xFF resultaría en un punto de código más allá del máximo Unicode.
Escriba un programa o función que tome el primer byte de una secuencia de bytes UTF-8 como entrada y salida o devuelva la longitud de la secuencia. I / O es flexible. Por ejemplo, la entrada puede ser un número, un carácter de 8 bits o una cadena de un carácter. Puede suponer que el primer byte es parte de una secuencia válida y cae en uno de los rangos anteriores.
Este es el código de golf. La respuesta más corta en bytes gana.
Casos de prueba
0x00 => 1
0x41 => 1
0x7F => 1
0xC2 => 2
0xDF => 2
0xE0 => 3
0xEF => 3
0xF0 => 4
0xF4 => 4