Pero hace poco me preguntaron si un caracter (así, a secas) ocupa siempre un byte.
Y la verdad es que no estoy seguro

Según los comentarios de la siguiente página, eso es correcto:
http://usando.info/blog/2007/06/bits...-entender.html
Pero en la wikipedia, en este enlace:
http://es.wikipedia.org/wiki/UTF-8
Indica que UTF-8 es un formato de codificación de caracteres... y en sus características indica lo siguiente:
Cita:
Y luego indica que esa cantidad varía entre 1 y 4 bytes.El número de bytes depende exclusivamente del código de carácter asignado por Unicode y del número de bytes necesario para representarlo.
Luego recordé los operadores a nivel de bit en C++ e hice el siguiente programa (con ayuda de un libro) que convierte cualquier caracter a binario:
Código:
Sin embargo, esto no tiene nada que ver con el espacio de almacenamiento que ocupa un caracter #include <iostream> using namespace std; int main() { char c; cout<<"Ingrese un caracter: "; cin>>c; cout<<"\'"<<c<<"\' en binario: "; for(short i=7; i>=0; --i) if( c & (1<<i) ) cout<<1; else cout<<0; return 0; }

Es que el programa toma el caracter y al mostrarlo en binario, muestra convertido a binario su código correspondiente en ASCII.
Por ejemplo, si ingreso el caracter 1, va a mostrar 49 en binario (y eso no tiene nada que ver me parece).
Gracias de antemano.