Sign in Join
Wiki copytemporary

Byte/es: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Byte/es

OldNewLine
1+Un byte es un [[Integer/es|entero]] sin signo en el rango de 0..255. Un byte tiene 8 bits de longitud. Un byte y un [[Char/es|char]] son prácticamente lo mismo que en la versión 3 de [[FPC]].
2+
3+## Valores validos
4+
5+La diferencia clave es que un byte solo se puede designarse como un tipo numérico, mientras que un [[Char/es|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/es|ansiChar]], pero en el futuro [[Char/es|char]] puede considerarse un sinónimo de [[WideChar/es|wideChar]], no [[AnsiChar/es|ansiChar]].
6+
7+Por Ejemplo:
8+
9+``` pascal
10+program byteDemo(input, output, stderr);
11+
12+var
13+ foo: byte;
14+ bar: char;
15+
16+begin
17+ // Las dos asignaciones son basicamente iguales
18+ foo := 65;
19+ bar := 'A';
20+
21+ // Aunque son el mismo valor,
22+ // la siguiente asignacion sería ilegal
23+ //foo := 'A';
24+ //bar := 65;
25+end.
26+```
27+
28+El uso de `byte` como tipo de datos proporciona una mejor documentación en cuanto al propósito del uso de la variable particular.
29+
30+## Funciones estandar
31+
32+### Conversión hacia y desde el caracter
33+
34+El tipo de `byte` se puede convertir a [[Char/es|char]] mediante la [[Chr/es|función chr]]. Los valores de tipo [[Char/es|char]] se pueden forzar a `byte` utilizando la [[Ord/es|función ord]].
35+
36+El programa anterior corregido para uso legal:
37+
38+``` pascal
39+program ordChrDemo(input, output, stderr);
40+
41+var
42+ foo: byte;
43+ bar: char;
44+
45+begin
46+ foo := 65;
47+ bar := 'A';
48+
49+ foo := ord('A');
50+ // chr(65) es equivalente a #65
51+ bar := chr(65);
52+ bar := #65;
53+
54+ // Alternativamente: typecasts / tipos de conversión
55+ // typecasts de expresiones constantes
56+ // se garantiza que se produzca en tiempo de compilación
57+ foo := byte('A');
58+ bar := char(65);
59+end.
60+```
61+
62+### Representación de cadena
63+
64+La [`función binStr`](https://www.freepascal.org/docs-html/rtl/system/binstr.html) de la [[System unit/es|unidad del sistema]] se puede usar para obtener una cadena que muestra la representación binaria de un `byte`:
65+
66+``` pascal
67+program binStrDemo(input, output, stderr);
68+
69+var
70+ foo: byte;
71+
72+begin
73+ foo := 10;
74+ writeLn(binStr(foo, 8));
75+end.
76+```
77+
78+La salida es:
79+
80+```text
81+00001010
82+```
83+
84+Una función más versátil es [`intToBin` proporcionada por `strUtils` unit](https://www.freepascal.org/docs-html/rtl/strutils/inttobin.html).
85+
86+---
87+*From the Free Pascal wiki, page "Byte/es", as it stood on 2022-05-26 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history