Кіріспе

Санның белгісі мен мәнін сақтай отырып, санның бит санын арттыру операциясы – компьютерлік арифметикадағы санның белгісін (оң/теріс) және мәнін сақтай отырып, екілік санның бит санын арттыру операциясы (кейде секст деп қысқартылады, әсіресе мнемоникада). Бұл, қолданылатын нақты қол қойылған сандық бейнелеуге байланысты, санның ең маңызды жағына цифрларды қосу арқылы жасалады. Мысалы, "00 1010" (ондық оң 10) санын бейнелеу үшін алты бит қолданылса және белгіні кеңейту операциясы сөздің ұзындығын 16 битке дейін ұлғайтса, жаңа бейнелеу жай ғана "0000 0000 0000 1010" болады. Осылайша, мән және мәннің оң екендігі сақталады. Егер "11 1111 0001" (ондық минус 15) мәнін екілік толықтыруды пайдалана отырып, он битпен көрсетуге болса және бұл белгі 16 битке дейін кеңейтілсе, жаңа бейнелеу "1111 1111 1111 0001" болады. Сол жағында 1 санымен толтыру арқылы теріс белгісі мен бастапқы санның мәні сақталады. Intel x86 нұсқаулар жиынтығында, мысалы, белгіні кеңейтудің екі жолы бар: cbw, cwd, cwde және cdq нұсқауларын қолдану: байтты сөзге, сөзді қос сөзге, сөзді кеңейтілген қос сөзге және қос сөзді төрт сөзге айналдыру (x86 контекстінде байт 8 бит, сөз 16 бит, қос сөз және кеңейтілген қос сөз 32 бит, ал төрт сөз 64 бит); белгісі кеңейтілген жылжудың бірін қолдану, бұл movsx ("белгісімен жылжу") нұсқаулар тобымен орындалады.

Нөлдік кеңейту

Осыған ұқсас түсінік – нөлдік кеңейту (кейде zext деп қысқартылады). Көшіру немесе түрлендіру операциясында нөлдік кеңейту – көздің ең маңызды битінің көшірмесін қоймай, мақсаттың жоғары биттерін нөлге орнатуды білдіреді. Егер операцияның көзі қолтаңбасыз сан болса, онда сандық мәнін сақтап, оны үлкенге ауыстыру үшін нөлдік кеңейту әдетте дұрыс тәсіл болып табылады, ал қолтаңбалы сандар үшін белгі кеңейту дұрыс. x86 және x64 командалар жиынтығында movzx командасы ("нөлдік кеңейтумен көшіру") осы функцияны орындайды. Мысалы, movzx ebx, al al тізілімінен ebx тізілімінің кіші байтына байтты көшіреді, содан кейін ebx тізілімінің қалған байттарын нөлдермен толтырады. x64 жүйесінде, жалпы мақсаттағы тізілімдердің төменгі 32 битіне жазатын көптеген командалар мақсат тізілімінің жоғарғы жартысын нөлдейді. Мысалы, mov eax, 1234 командасы rax тізілімінің жоғарғы 32 битін тазартады.