#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;
}