V informatice je offset v poli nebo jiném objektu datové struktury celé číslo označující vzdálenost (offset) mezi začátkem objektu a daným prvkem nebo bodem, pravděpodobně v rámci stejného objektu [1] . Koncept vzdálenosti je platný pouze v případě, že všechny prvky objektu mají stejnou velikost (obvykle se udává v bajtech nebo „slovech“ (uspořádaná sada bajtů nebo bitů )).
Například v poli Aobsahujícím "abcdef", čtvrtý prvek obsahující znak 'd'má posun o tři od začátku A.
V počítačovém inženýrství a programování na nízké úrovni (jako je jazyk symbolických instrukcí ) se offset obvykle vztahuje k počtu adres, které musí být přidány k základní adrese , aby se získala konkrétní absolutní adresa . Tato hodnota používá pouze základní blok adresy, obvykle 8bitový bajt, k určení velikosti offsetu. V této souvislosti je offset někdy označován jako "relativní adresa".
V instrukcích IBM System/360 obsahuje 12bitový posun vložený do určitých instrukcí rozsah od 0 do 4096 bajtů. Například v instrukci bezpodmínečného skoku (X'47F0Fxxx') poskytl 12bitový hexadecimální offset "xxx" bajtový offset od základního registru (15) k větvi [2] . Lichý offset bude mít za následek kontrolu programu (pokud základní registr neobsahuje lichou adresu), protože instrukce musí být zarovnány na hranicích půl slova, aby mohly být provedeny bez přerušení softwaru nebo hardwaru [3] .
Předchozí příklad popisuje nepřímý způsob přístupu k paměťovému umístění ve formátu segmentu: offset. Předpokládejme například, že chceme odkazovat na paměťové umístění 0xF867. Jedním ze způsobů, jak toho lze dosáhnout, je nejprve definovat segment s počáteční adresou 0xF000 a poté definovat offset 0x0867. Kromě toho je také povoleno posunout hex segment pro dosažení konečné absolutní adresy paměti. Zde je třeba poznamenat, že konečné absolutní adresy lze dosáhnout různými způsoby.