计算机原码反码补码问题和进制转换

作者&投稿:曲卖 (若有异议请与网页底部的电邮联系)
原码 反码 补码 进制转换~

X=89H,先转为二进制表示,然后在求相应的表达方式。
二进制表示为8*16=16=128+16
10010000b

原码表示就是89h
反码即按位取反后求值为 011011111b=??h
补码为01110000b=??h

是原码
不是源码
对于整数:补码反码原码都是一样的,也就是它本身的二进制
对于负数:
原码:绝对值的原码,将最高为变1
反码:绝对值的原码按位取反
补码:绝对值的原码按位取反再加1

1首先了解 低字节位 和高字节位 看图

2字节在内存的排列方式

//int num = 010; //0开头代表 8禁止 //("%d",num); //所以打印的是8 int num = 0x12345678; //将占 2 32位 printf("%p", &num); /* 要特别 注意 低位 在低字节 高位 高字节 0x0063FAC0 78 x 0x0063FAC1 56 V 0x0063FAC2 34 4 0x0063FAC3 12 . */ 看图2

3 printf  不会进行自动转换 void main(){ printf("%d", 10.3); printf("
%f", 10);

getchar();}

请看图3

4 一定要注意数据会溢出数据会溢出请看图4

unsigned short num = 65535; printf("我有现金:%d元",num);

unsigned short num = 65535+1; printf("我有现金:%d元",num);

上面这样数据就会溢出

5 原理

头文件#include<limits.h> printf("%d", INT_MAX); printf("
%d", INT_MIN); printf("
%u", UINT_MAX); //有负号的情况下 0代表正式 1代表负数 //1111 1111 1111 1111 1111 1111 1111 1111 //0111 1111 1111 1111 1111 1111 1111 1111

6源码反码补码

//1的源码和-1的源码 //0000 0000 0000 0000 0000 0000 0000 0001 //1000 0000 0000 0000 0000 0000 0000 0001//-1符号为是1

源码反码补码过程//源码1000 0000 0000 0000 0000 0000 0000 0001

//-1反码1 符号位不变  所有0变1  1变0//111 1111 1111 1111 1111 1111 1111 1110

//-1补码  符号位不变  所有0变1  1变0  在补1(在反码基础是+1)//111 1111 1111 1111 1111 1111 1111 1111 unsigned int num = -1; printf("%d %u", num, num);

虽然补码后二进制相同 但是他们有负号的符号位不算 所以数据不相同

7为什么要用补码  非常重要!!!

0000 0001  1   (1代表十进制)1000 0010  2   (1000 0010 是2的源码)

如果我们用2的补码1000 0010  源码

1111 1101  反码(所有位取反 负号不变)

1111 1110  补码(反码基础 +1)

这时候在相加

0000 0001  1 1111 1110  2的补码1111 1111  是不是就是-1

-1 源码1000 00011111 1110 反码1111 1111 补码用补码的原因就是因为可以大大节约计算机的资源

8 数据的取值范围



国标码 5E38,机内码就是:DEB8。




计算机原码反码补码怎么算
用补码的计算过程如下:7 的补码=0000 0111 -3的补码=1111 1101 --相加--- 得:(1) 0000 0100 = 4 的补码 舍弃进位,只保留八位,作为结果即可。这就是:使用补码,加法就代替了减法。所以,在计算机中,有一个加法器,就够用了。原码和反码,都没有这种功能。--- 原码和反码,...

在字长为8位的计算机中,下列数的原码、反码及补码各为多少? +18、-1...
【答案】:8位字长的计算机表示机器数,每个机器数是8位,最高位为符号位,后7位为数值位。因此[+18]原=[+18]反=[+18]补=00010010[-18]原=10010010[-18]反=11101101[-18]补=11101110[+31]原=[+31]反=[+31]补=00011111[-31]原=10011111[-31]反=11100000[-31]补=11100001[+127]原=...

什么是原码、反码、补码?
原码:正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码 例1:+66 66的二进制:1000010,所以+66的原码: 0 1000010 =补码: 0 1000010=反码: 0 1000010 负整数的原码:仍是这个数的二进制,符号位为1;负整数的原码、反码、补码计算:先求原码,再求反码,最后...

计算机源码,反码,补码之间怎么计算?
真值和补码,可以直接互相转换。它们的对应关系如下:只要记住:【补码的首位是负数】这个特点,即可。--- 码长 8 位时,-128 的原码反码,都是不存在的。但是,-128,确实有补码 1000 0000。此时,原码反码补码,是无法计算的。

原码,补码,反码都是什么意思,怎么算啊
也就是,正数的原码,反码,补码都相同 下面是负数的原码、反码、和补码:3的原码:00000011 -3的原码:10000011 也就是最左边的那个数表示正负,0代表正,1代表负,它也叫符号位 -3的原码:10000011 -3的反码:11111100 负数的反码是对其原码按位取反,符号位不变 -3的补码:11111101 负数...

求助关于计算机原码与补码的问题
以8位二进制为例:1111 1111---这个数并非最小负数,它是负数整数中最大的(-1)...1000 0001---倒数第二的负数,其反码为1111 1110,补码为1111 1111(-127)1000 0000---这才是最小负数,其反码为1111 1111,补码为1000 0000(-128)

原码、反码、补码
在计算机中表示的带符号的二进制数称为“机器数”(用形式上的码表示真实的数)。机器数有3种表示方式:原码、反码和补码。机器数的最高位为符号位,0表示正数,1表示负数,数值跟随其后。原码是与真值最接近的一种表示形式。原码的定义:[X]原 ={ X         ...

原码、补码、反码之间是怎样转换的?
原码、反码和补码之间的转换主要针对负整数,而对于正整数,它们的表示形式是相同的,都是符号位固定为0,数值位不变。转换规则如下:1.负整数的原码到反码:原码的符号位保持不变,其他位取反(0变1,1变0)。2.反码到补码:反码的符号位仍为1,数值部分最低位加1。具体操作如下:-正整数:原码...

什么是原码、反码、补码?
-3的补码=1111 1101 --相加--- 得:(1) 0000 0100 = 4 的补码 舍弃进位,只保留八位作为结果,就是 4。这就用加法,解决了负数以及减法的问题。--- 原码和反码,并没有这些功能。所以,在计算机中,并没有原码和反码。所谓的“取反加一”,由谁算呢?计算机,可不做这些事。

原码反码补码概念(原码反码补码)
[10000000]补 =[10000000]反+1 =11111111+1 =(1)00000000 =00000000(最高位溢出了,符号位变成了0) 有人会问 10000000这个补码表示的哪个数的补码呢? 其实这是一个规定,这个数表示的是-128 所以n位补码能表示的范围是 -2^(n-1)到2^(n-1)-1 比n位原码能表示的数多一个又例:1011 原码:01011 反码:...

龙胜各族自治县15031012141: 原码与补码的转换[ - 3]反=[10000011]反=11111100 原码 反码负数的补码是将其原码除符号位之外的各位求反之后在末位再加1.[ - 3]补=[10000011]补=... -
止风枣参:[答案] 两个说法都没有错,我们举个例子来看看就明白了: 1、10001的补码是取反后在再加1,也就是11110+1=11111; 2、如果是11111变回原码呢?我们可以采取逆过程先减1,11111-1=11110,再取反变为10001; 3、如果要是在补码变原码时先去反再加...

龙胜各族自治县15031012141: 原码 反码 补码怎么转换 -
止风枣参: 反码补码原码怎么转换,来看看方法吧. 1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值. 2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1. 3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1.零分为+0和-0. 进行不同符号的加法或同一符号的减法时,不能直接进行加法或减法,不能直接给出正负的结果. 4、必须先取绝对值,然后再加上减法. 符号比特由较大的绝对值决定,因此出现了转码. 反码是对原始代码的改进.补码在针对加减运算和正负零的问题上都解决了,平时用的最多的也就是补码.

龙胜各族自治县15031012141: 计算机中数据存储!原码,反码.补码.如何转换 -
止风枣参: 原码:先将十进制数转换成二进制数,然后把最高位作为符号位,正数设为“0”,负数设为“1” 反码:正数的反码和原码一样,负数的反码就是:符号位不变,数值位逐位取反 补码:正数的补码和原码一样,负数的补码就是:反码的最低位加1 看一下:求出45和-45在8位机器中的原码反码补码 原码 反码 补码 +45 00101101 00101101 00101101 (原码、反码、补码都一样) -45 10101101 11010010 (最高位没变,数值位取反) 11010011(反码最低位加1)

龙胜各族自治县15031012141: 【加试题】在计算机内,有符号数有3种表示法:原码、反码和补码. (1)原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其... -
止风枣参:[选项] A. -29 B. -4 C. -61 D. -36

龙胜各族自治县15031012141: 已知计算机的字长为8位,求十进制数的原码、反码和补码 -
止风枣参:[答案] 1的原码00000001反码11111110补码00000001-1的原码10000001反码01111110补码11111111说明:原码即为该10进制数的2进制码,反码为二进制码按位取反,正数的补码等于原码,负数的补码等于去掉符号后的原码取反加一.最高位...

龙胜各族自治县15031012141: 假定某台计算机的机器数占8位,试写出十进制数 - 67的原码,反码和补码具体说明和过程 -
止风枣参:[答案] 67的原码为 01000011(第一位为符号位,'0'表示正数,'1'表示负数) -67的原码那么为11000011,因为正数的原码、反码、补码都相同,而负数的反码=原码各位取反(即0变1,1变0,符号位不能变) 负数的补码=负数的反码+00000001, ...

龙胜各族自治县15031012141: 计算机基础习题简答题:一个二进制数的原码如何表示?如何将一个二进制的原码转换成补码? -
止风枣参:[答案] 正数的原码,反码,补码都一样是这个正数.负数的补码是原码取反后加1!

龙胜各族自治县15031012141: 一个数的原码,反码,补码怎么算啊? -
止风枣参:[答案] 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形...

龙胜各族自治县15031012141: 小数的补码,原码,反码怎么相互转换?(二进制) -
止风枣参: 化为2进制是整数部分除以二知道变为1 小数部分乘以2直到变为1 ,符号位0表示正1表示负 正数:原码=补码 负数: 原码 = 正数部分(去掉负号)的二进制值,且符号位(最左边的比特位)为1 反码 = 正数部分(去掉负号)的二进制值,按位取...

龙胜各族自治县15031012141: 二进制数反码和补码的算法例如19 转换为二进制为 10011那么+19 原码为 00011反码为 00011补码为 00011那么 - 19原码为 00011反码为 01100补码为 01101... -
止风枣参:[答案] 计算机里的二进制数有八位、十六位等,下面以八位为例 19的二进制数为:0001 0011 那么+19 原码为 0001 0011 反码为 0001 0011 补码为 0001 0011 那么-19 原码为 1001 0011 (左边第一位表示正负数,正数为0,负数为1) 反码为 1110 1100 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网