В С++ есть такой UNION объединение, который позволяет объединять несколько типов, или так сказать закреплять общую память под разными переменными.
Как такое сделать на Паскаль или PascalABC ?
//===================================================================
union Ued { //определяю объединяющий память тип, оператором union.
Byte bb; // переменная bb которая будет иметь общую память с структурой bayt.
struct { //структура bayt которая будет иметь общую память с переменной bb.
unsigned b0 : 1; //создаю переменную бит, 1- это выделение одного бита под переменную.
unsigned b1 : 1; //всего восемь одинаковых переменных в структуре для соответствия размеру байта.
unsigned b2 : 1;
unsigned b3 : 1;
unsigned b4 : 1;
unsigned b5 : 1;
unsigned b6 : 1;
unsigned b7 : 1;
}bayt; //имя структуры.
};
//=======================================================================
//использование:
Ued un; // создаю объединенную переменную.
un.bb = 12; //заношу число в переменную типа байт.
richTextBox1->AppendText("\r\n" + " bb = " + un.bb.ToString());
richTextBox1->AppendText("\r\n" +
"." + un.bayt.b7 + "." + un.bayt.b6 + "." + un.bayt.b5 + "." + un.bayt.b4
+ "." + un.bayt.b3 + "." + un.bayt.b2 + "." + un.bayt.b1 + "." + un.bayt.b0);
un.bayt.b5 = 1; //изменяю один бит.
richTextBox1->AppendText("\r\n" + " bb = " + un.bb.ToString());
richTextBox1->AppendText("\r\n" +
"." + un.bayt.b7 + "." + un.bayt.b6 + "." + un.bayt.b5 + "." + un.bayt.b4
+ "." + un.bayt.b3 + "." + un.bayt.b2 + "." + un.bayt.b1 + "." + un.bayt.b0);
//=======================================================================
результат:
bb = 12
bayt = .0.0.0.0.1.1.0.0
bb = 44
bayt = .0.0.1.0.1.1.0.0 //===================================================================