Byte/es

From Free Pascal wiki

Deutsch (de) English (en) español (es) suomi (fi) français (fr) italiano (it) русский (ru) 中文(中国大陆)‎ (zh_CN)
Un byte es un entero sin signo en el rango de 0..255. Un byte tiene 8 bits de longitud. Un byte y un char son prácticamente lo mismo que en la versión 3 de FPC.

Valores validos

La diferencia clave es que un byte solo se puede designarse como un tipo numérico, mientras que un char se puede usar como un carácter o como parte de un tipo de cadena y no se puede usar en una expresión aritmética. Un byte siempre tendrá el mismo tamaño que un ansiChar, pero en el futuro char puede considerarse un sinónimo de wideChar, no ansiChar.

Por Ejemplo:

program byteDemo(input, output, stderr);

var 
	foo: byte;
	bar: char;

begin
	// Las dos asignaciones son basicamente iguales
	foo := 65;
	bar := 'A';
	
	// Aunque son el mismo valor,
	// la siguiente asignacion sería ilegal
	//foo := 'A';
	//bar := 65;
end.

El uso de byte como tipo de datos proporciona una mejor documentación en cuanto al propósito del uso de la variable particular.

Funciones estandar

Conversión hacia y desde el caracter

El tipo de byte se puede convertir a char mediante la función chr. Los valores de tipo char se pueden forzar a byte utilizando la función ord.

El programa anterior corregido para uso legal:

program ordChrDemo(input, output, stderr);

var
	foo: byte;
	bar: char;

begin
	foo := 65;
	bar := 'A';
	
	foo := ord('A');
	// chr(65) es equivalente a #65
	bar := chr(65);
	bar := #65;
	
	// Alternativamente: typecasts / tipos de conversión
	// typecasts de expresiones constantes
	// se garantiza que se produzca en tiempo de compilación
	foo := byte('A');
	bar := char(65);
end.

Representación de cadena

La función binStr de la unidad del sistema se puede usar para obtener una cadena que muestra la representación binaria de un byte:

program binStrDemo(input, output, stderr);

var
	foo: byte;

begin
	foo := 10;
	writeLn(binStr(foo, 8));
end.

La salida es:

00001010

Una función más versátil es intToBin proporcionada por strUtils unit.


navigation bar: data types
simple data types

boolean byte cardinal char currency extended int64 integer longint pointer real shortint smallint word

complex data types

array class object record set string shortstring