查看“︁原码”︁的源代码
←
原码
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{NoteTA |G1 = IT }} {{Distinguish2|'''[[源代码|-{zh-cn:源码; zh-tw:原始碼;}-]]'''}} '''原碼'''(True form)是[[電腦運算]]的名詞,是指“未經更改”的碼。为了便于[[ALU]]的设计,又發展出[[反码]]、[[补码]]等轉換過的碼。 原码是指一个[[二进制]]数左边加上符号位后所得到的码,且当二进制数大于0时,符号位为0;二进制数小于0时,符号位为1;二进制数等于0时,符号位可以为0或1(+0/-0)。 == 原码的具体定义 == 计算机中所有的数均用0、1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。 === 小数原码的定义 === [X]<sub>原</sub> = <math> \left\{\begin{array}{lcl} X & \quad & (0 \leqslant X < 1) \\\\ 1-X & & (-1 < X \leqslant 0 ) \end{array}\right. </math> 例如:[+0.1011]<sub>原</sub>=0.1011000 [-0.1011]<sub>原</sub>=1.1011000 (代码中的小数点“.”是在书写时为了清晰起见加上去的,在机器中并不出现。) === 整数原码的定义 === [X]<sub>原</sub> = <math> \left\{\begin{array}{lcl} X & \quad & (0 \leqslant X < 2^{n-1} ) \\\\ 2^{n-1}-X & & ( -2^{n-1} < X \leqslant 0 ) \end{array}\right. </math> 例如:[+1011]<sub>原</sub>=00001011 [-1011]<sub>原</sub>=10001011 == 编码方式 == 原码是最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。一个字长为n的机器数能表示不同的数字的个数是固定的<math>2^n</math>个。当<math>n=8</math>时,能表示256个数字。 === 有符号数 === 用来表示有符号数,数的范围就是<math>-(2^{n-1}-1) \sim +(2^{n-1}-1)</math>。当<math>n=8</math>时,这个范围就是<math>-127 \sim +127</math>。 === 无符号数 === 在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是<math>0 \sim 2^{n}-1</math>。当<math>n=8</math>时,这个范围就是<math>0 \sim 255</math>。 == 原码的优点 == 简单直观;例如,我们用8位二进制表示一个数,则+11的原码为00001011,-11的原码就是10001011。 == 原码的缺点 == 原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错了。 所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。 == 參見 == * [[有符號數處理]] * [[一補數]] * [[二補數]] [[Category:计算机算术]] [[Category:二进制算术]] {{compu-stub}}
该页面使用的模板:
Template:Compu-stub
(
查看源代码
)
Template:Distinguish2
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
返回
原码
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息