计算机源码知道真值怎么求_知道原码怎么求真值

hacker|
99

文章目录:

原码是怎么算

原码:在数值前直接加一符号位的表示法。

例如: 符号位=数值位

[+7]原=0 0000111 B

[-7]原=1 0000111 B

注意:a. 数0的原码有两种形式:

[+0]原=00000000B [-0]原=10000000B

b. 8位二进制原码的表示范围:-127~+127

编码方式

原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。

一个字长为n的机器数能表示不同的数字的个数是固定的2^n个,n=8时2^n=256;用来表示有符号数,数的范围就是 -2^(n-1)-1 ~ 2^(n-1)-1,n=8时,这个范围就是 -127 ~ +127。

但是在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255。

计算机原码反码补码怎么算

计算机原码反码补码计算方法:

1、原码

原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]

即[-127 , 127]

原码是人脑最容易理解和计算的表示方式。

2、反码

反码的表示方法是:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

可见如果一个反码表示的是负数,人脑无法直观地看出来它的数值。通常要将其转换成原码再计算。

3、补码

补码的表示方法是:正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)。

[+1] = [00000001]原 = [00000001]反 = [00000001]补

[-1] = [10000001]原 = [11111110]反 = [11111111]补

对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。

扩展资料:

原码,反码和补码是完全不同的。既然原码才是被人脑直接识别并用于计算表示方式,为何还会有反码和补码呢?

首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。但是对于计算机,加减乘数已经是最基础的运算,要设计的尽量简单。计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂。于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数,即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。

于是人们开始探索将符号位参与运算,并且只保留加法的方法。

真值怎么变原码

机器数有带符号和不带符号的,才知道真值。

用题中的一个机器数举例:1101 0000 是一个八位的机器数,

假设带符号,则,最高位1表示负号,其对应的真值是 -101 000(二进制)= -16(十进制)

假设不带符号,则,其对应的真值是 1101 0000(二进制) = 208(十进制)

原码即真值,其中最高位为符号位,其余均为数值位。

正数、零的原码、反码、补码均相同。所以真正的求补的运算只对负数进行,且:补码的补码即是原码。

对负数求补的过程是,保持符号位不变,对数值位取反后再加一。

原码就是首位代表符号位,0为正数,1位负数,其后的数值部分用真值的绝对值表示的二进制机器数;而真值呢,就是二进制数的数值,真实值。

扩展资料:

计算机中所有的数均用0,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。

在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零以补足n-1位。这种计算机的编码形式叫做原码。

记作X=[X]原。例如在字长n=8的机器内:

小数: [+0.1011]原=0.1011000

[-0.1011]原=1.1011000

整数: [+1011]原=00001011

[-1011]原=10001011

代码中的小数点”.”是在书写时为了清晰起见加上去的,在机器中并不出现。

参考资料来源:百度百科-原码

4条大神的评论

  • avatar
    访客 2022-08-12 上午 11:39:24

    。于是人们开始探索将符号位参与运算,并且只保留加法的方法。真值怎么变原码机器数有带符号和不带符号的,才知道真值。用题中的一个机器数举例:1101 0000 是一个八位的机器数,假设带符号,则,最高位1表示负号,其对应的真值是

  • avatar
    访客 2022-08-12 上午 10:57:21

    围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式。2、反码反码的表示方法是:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。[+1] = [00000001]原 = [00

  • avatar
    访客 2022-08-12 下午 06:56:29

    。真值怎么变原码机器数有带符号和不带符号的,才知道真值。用题中的一个机器数举例:1101 0000 是一个八位的机器数,假设带符号,则,最高位1表示负号,其对应的真值是 -101

  • avatar
    访客 2022-08-12 下午 04:26:57

    ,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在

发表评论