符號擴充

符號擴充 （ 又名符號擴展 ） 是計算機算術中 ， 在保留數字的符號 （ 正負性 ） 及數值的情況下 ， 增加二進制數字位數的操作 。 此操作根據使用的特定有符號數處理方式 ， 通過在數字的最高有效位端添加位數的方式完成 。 舉個例子 ， 若計算機使用六位二進制數表示數字 “ 00 1010 ” （ 十進制的正10 ） ， 且此數字需要將字長符號擴充至十六位 ， 則擴充後的值爲 “ 0000 0000 0000 1010 ” 。 此時 ， 數值與符號均保留了下來 。 若計算機使用十位數及二補數表示數字 “ 11 1111 0001 ” （ 十進制的負15 ） ， 且此值需要擴充至十六位 ， 則擴充後的值爲 “ 1111 1111 1111 0001 ” 。 此時 ， 負號及原數字數值通過將左側填充爲1的方式保留了下來 。 在英特爾的中 ， 符號擴充有兩種方式 ： 使用指令cbw 、 cwd 、 cwde及cdq ： 分別將字節轉化爲字 、 字轉化爲雙字 、 字轉化爲擴充雙字 、 雙字轉化爲四倍長字 （ x86環境中 ， 一個字節爲8位 、 一個字16位 、 雙字與擴充雙字均爲32位 、 四倍長字64位 ） ； 使用符號擴展移動指令 ， 可通過movsx （ “ 帶符號移動 ” ） 指令族完成 。