首页 > 编程知识 正文

c语言源码与反码,原码反码补码转换题目

时间:2023-05-05 14:59:36 阅读:39629 作者:2460

#pragma yjfdll源代码完成代码反码###pragma yjfdll概念

###pragma yjfdll代码

#包含

int main () )

{

//实际上,数据存储在内存中的都是内存的二进制文件

//二进制还可以分为源代码/反码/补码

//实际上最终存储在内存中的是“补数”

#pragma yjfdll正数存储的原码、二维码、反码

/*

//9 --保存到内存---二进制

//9是整数==int==4字节==1字节8比特==整数有32比特

00000000000000000000000000000000000000000001001 (源代码) )。

什么是反码,正数的反码是正数的原码

什么是补数,正数的补数是正数的原码

一言以蔽之,正数的原码补码反码都相同,三码合一

*/

#pragma yjfdll负数存储的源代码、补码、解码

/*

//-9 --保存到内存---二进制

实际上,二进制数的第一位是二进制符号位,如果该位为0,则表示该数为正数

100000000000000000000000000000000000000000001001 (源代码) )。

反符号:个已编码比特不变化,其它比特取反(0变1变0 ) )。

11111111111111111111111111111111111111110110 (反码() ) ) ) ) ) ) ) )。

补数:负号1是补数

11111111111111111111111111111111111111110110 (反码() ) ) ) ) ) ) ) )。

0000 0000 0000 0000 0000 0000 0000 0001

1111111111111111111111111111111111111110111 (补数) ) ) ) ) ) 652

*/

#pragma yjfdll练习

/*

-15的原码/反码/补码

10000000000000000000000000000000000000000000111 (源代码) )。

111111111111111111111111111111111111110000 (反码() ) ) ) ) ) ) 652

11111111111111111111111111111111111110001 (补数() ) ) ) ) ) )。

为什么需要原订/增补/逆付呢? 主要是为了方便计算机的计算

1 .由于最高有效比特是已编码比特,因此如果0为整数,如果1为负数

2 .中,如果原样保存原始代码,计算机在计算时需要判断最高有效位后再进行计算,效率很低

3 .为了便于计算机的计算,有反码和补码。 有了反码和补码,以后计算机就不用判断最高位了,直接计算就行了

1 1

0001

0001

------------

0010==2

#pragma yjfdll在源代码的思想上计算结果错误

1-1==1(-1 )==计算机只能相加

0000 0001 //源代码

1000 0001 //原码

------------

1000 0010==-2

#pragma yjfdll在反码思想的基础上进行计算

1-1=1(-1 ) )。

0000 0001 //加1的原码(反码) ) ) )。

1111 1110 //负1反码

------------

1111 1111==反码

将计算出的反码转换为原始代码,并将原始代码转换为十进制

1000 0000==源代码==-0

#pragma yjfdll在补数思想的基础上进行计算

1-1=1(-1 ) )。

0000 0001 //加1补数

1111 1111 //负1的补数(是负1的反转加1成为补数)。

------------

1 0000 0000==- 0

*/

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。