Data Types: Difference between revisions
From RuneWiki
(Created page with "== Types == Byte Word SWord DWord QWord String === Transformations === Add Subtract Negate Reverse === Endianness === Big Little Middle-Big Middle-Little === Spe...") |
No edit summary |
||
Line 1: | Line 1: | ||
== Types == | ==Types== | ||
Byte | {| class="wikitable" | ||
!Name | |||
!Length | |||
!Notes | |||
|- | |||
|Byte | |||
|1 | |||
|<nowiki>0 to 255 unsigned | -128 to +127 signed</nowiki> | |||
|- | |||
|Word | |||
|2 | |||
|<nowiki>0 to 65,535 unsigned | -32,768 to +32,767 signed</nowiki> | |||
|- | |||
|SWord* | |||
|3 | |||
|<nowiki>0 to 16,777,215 unsigned | −8,388,608 to 8,388,607 signed</nowiki> | |||
|- | |||
|DWord | |||
|4 | |||
|<nowiki>0 to 4,294,967,295 unsigned | -2,147,483,648 to 2,147,483,647 signed</nowiki> | |||
|- | |||
|QWord | |||
|8 | |||
|<nowiki>0 to 18,446,744,073,709,551,615 unsigned | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 signed</nowiki> | |||
|- | |||
|String | |||
|1+ | |||
|Newline-terminated, not null-terminated like C | |||
|} | |||
<nowiki>*</nowiki>SWord means sesqui word, or one and a half words. | |||
===Byte Transformations=== | |||
These transformations only apply to the least significant byte, regardless of the endianness. | |||
{| class="wikitable" | |||
!Name | |||
!Operation | |||
|- | |||
|Add | |||
|byte + 128 | |||
|- | |||
|Subtract | |||
|128 - byte | |||
|- | |||
|Negate | |||
| -byte | |||
|} | |||
===Byte Order=== | |||
Also known as Endianness. | |||
{| class="wikitable" | |||
!Name | |||
!Order | |||
|- | |||
|Big | |||
|4, 3, 2, 1 | |||
|- | |||
|Little | |||
|1, 2, 3, 4 | |||
|- | |||
|Middle-Big* | |||
|3, 4, 1, 2 | |||
|- | |||
|Middle-Little* | |||
|2, 1, 4, 3 | |||
|} | |||
<nowiki>*</nowiki>Middle-Big and Middle-Little are not a standard order or naming scheme. I call them that because they start with the big significant bytes or the little significant bytes. | |||
===Special Types=== | |||
=== Special === | |||
Base37 | Base37 | ||
Revision as of 23:13, 6 September 2021
Types
Name | Length | Notes |
---|---|---|
Byte | 1 | 0 to 255 unsigned | -128 to +127 signed |
Word | 2 | 0 to 65,535 unsigned | -32,768 to +32,767 signed |
SWord* | 3 | 0 to 16,777,215 unsigned | −8,388,608 to 8,388,607 signed |
DWord | 4 | 0 to 4,294,967,295 unsigned | -2,147,483,648 to 2,147,483,647 signed |
QWord | 8 | 0 to 18,446,744,073,709,551,615 unsigned | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 signed |
String | 1+ | Newline-terminated, not null-terminated like C |
*SWord means sesqui word, or one and a half words.
Byte Transformations
These transformations only apply to the least significant byte, regardless of the endianness.
Name | Operation |
---|---|
Add | byte + 128 |
Subtract | 128 - byte |
Negate | -byte |
Byte Order
Also known as Endianness.
Name | Order |
---|---|
Big | 4, 3, 2, 1 |
Little | 1, 2, 3, 4 |
Middle-Big* | 3, 4, 1, 2 |
Middle-Little* | 2, 1, 4, 3 |
*Middle-Big and Middle-Little are not a standard order or naming scheme. I call them that because they start with the big significant bytes or the little significant bytes.
Special Types
Base37
Interface Color
Model Color