[an error occurred while processing this directive]
|
Порядок расположения, точнее вес, более мелких единиц данных в более крупных. 8-ми разрядных в 16-ти разрядных, 16-ти в 32-х, 8-ми в 32-х и т.д.
На примере 16-ти разрядного (short). 2 байта занимает. Байты расположены по относительным адресам 0 (byte[0]),1 (byte[1]).
Для little byte[0] - младший, т.е. имеет вес 1, byte[1] - старший, вес 256. Т.е. short=byte[1]*256+byte[0].
Для big наоборот byte[1] - младший, т.е. имеет вес 1, byte[0] - старший, вес 256. Т.е. short=byte[0]*256+byte[1].
Аналогично для 32-х разрядов (int). 2 short занимает, расположенных по относительным адресам 0 (short[0]), 2(short[2]). В свою очередь short[0] из byte[0],byte[1], short[2] из byte[2],byte[3].
Для little - int=short[2]*65536+short[0]=(byte[3]*256+byte[2])*65536+byte[1]*256+byte[0].
Для big - int=short[0]*65536+short[2]=(byte[0]*256+byte[1])*65536+byte[2]*256+byte[3].
Все сказанное не означает, что 1, например, для big должна записываться в программе как 0x8000 (16 разрядов). Она будет точно так же записываться, т.е. 1.
Т.е. little, big - это по другому порядок, в котором данные хранятся в памяти.
E-mail: info@telesys.ru