fbpx
维基百科

符号扩充

符号扩充(又名符号扩展)是计算机算术中,在保留数字的符号(正负性)及数值的情况下,增加二进制数字位数的操作。此操作根据使用的特定有符號數處理方式,通过在数字的最高有效位端添加位数的方式完成。

举个例子,若计算机使用六位二进制数表示数字“00 1010”(十进制的正10),且此数字需要将字长符号扩充至十六位,则扩充后的值为“0000 0000 0000 1010”。此时,数值与符号均保留了下来。

若计算机使用十位数及二補數表示数字“11 1111 0001”(十进制的负15),且此值需要扩充至十六位,则扩充后的值为“1111 1111 1111 0001”。 此时,负号及原数字数值通过将左侧填充为1的方式保留了下来。

英特尔x86指令集英语x86 instruction listings中,符号扩充有两种方式:

  • 使用指令cbwcwdcwdecdq:分别将字节转化为字、字转化为双字、字转化为扩充双字、双字转化为四倍长字(x86环境中,一个字节为8位、一个字16位、双字与扩充双字均为32位、四倍长字64位);
  • 使用符号扩展移动指令,可通过movsx(“带符号移动”)指令族完成。

零扩展 编辑

零扩展是与符号扩展类似的概念。在移动操作或转换操作中,零扩展指的是将目标的高位数设置为零,而不是将高位数设置成原数字的最高有效位。零扩展通常用于将无符号数字移动至较大的字段中,同时保留其数值;而符号扩展通常用于有符号的数字。

在x86及x64指令集中,movzx指令(“使用零扩展移动”)将执行零扩展移动。举个例子,movzx ebx, al会复制al中的一个字节至ebx的低位字节,随后使用0填充ebx的剩余字节。

在x64平台上,大多数写入通用寄存器的低32位的指令将使用0填充目标寄存器的上半部分。举个例子,指令mov eax, 1234将清除rax寄存器的上32位。

参考文献 编辑

  • Mano, Morris M.; Kime, Charles R. (2004). Logic and Computer Design Fundamentals (3rd ed.), pp 453. Pearson Prentice Hall. ISBN 0-13-140539-X.

符号扩充, 此條目已列出參考文獻, 但因為沒有文內引註而使來源仍然不明, 2019年5月23日, 请加上合适的文內引註来改善这篇条目, 又名符号扩展, 是计算机算术中, 在保留数字的符号, 正负性, 及数值的情况下, 增加二进制数字位数的操作, 此操作根据使用的特定有符號數處理方式, 通过在数字的最高有效位端添加位数的方式完成, 举个例子, 若计算机使用六位二进制数表示数字, 1010, 十进制的正10, 且此数字需要将字长至十六位, 则扩充后的值为, 0000, 0000, 0000, 1010, 此时, 数值与. 此條目已列出參考文獻 但因為沒有文內引註而使來源仍然不明 2019年5月23日 请加上合适的文內引註来改善这篇条目 符号扩充 又名符号扩展 是计算机算术中 在保留数字的符号 正负性 及数值的情况下 增加二进制数字位数的操作 此操作根据使用的特定有符號數處理方式 通过在数字的最高有效位端添加位数的方式完成 举个例子 若计算机使用六位二进制数表示数字 00 1010 十进制的正10 且此数字需要将字长符号扩充至十六位 则扩充后的值为 0000 0000 0000 1010 此时 数值与符号均保留了下来 若计算机使用十位数及二補數表示数字 11 1111 0001 十进制的负15 且此值需要扩充至十六位 则扩充后的值为 1111 1111 1111 0001 此时 负号及原数字数值通过将左侧填充为1的方式保留了下来 在英特尔的x86指令集 英语 x86 instruction listings 中 符号扩充有两种方式 使用指令cbw cwd cwde及cdq 分别将字节转化为字 字转化为双字 字转化为扩充双字 双字转化为四倍长字 x86环境中 一个字节为8位 一个字16位 双字与扩充双字均为32位 四倍长字64位 使用符号扩展移动指令 可通过movsx 带符号移动 指令族完成 零扩展 编辑零扩展是与符号扩展类似的概念 在移动操作或转换操作中 零扩展指的是将目标的高位数设置为零 而不是将高位数设置成原数字的最高有效位 零扩展通常用于将无符号数字移动至较大的字段中 同时保留其数值 而符号扩展通常用于有符号的数字 在x86及x64指令集中 movzx指令 使用零扩展移动 将执行零扩展移动 举个例子 movzx ebx al会复制al中的一个字节至ebx的低位字节 随后使用0填充ebx的剩余字节 在x64平台上 大多数写入通用寄存器的低32位的指令将使用0填充目标寄存器的上半部分 举个例子 指令mov eax 1234将清除rax寄存器的上32位 参考文献 编辑Mano Morris M Kime Charles R 2004 Logic and Computer Design Fundamentals 3rd ed pp 453 Pearson Prentice Hall ISBN 0 13 140539 X 取自 https zh wikipedia org w index php title 符号扩充 amp oldid 54521231, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。