今日份学习“原码反码补码”
本文简介:
该文章带你了解整数在内存中是如何存储的,正整数的存储方式以及负整数的存储方式,让你有一个更深刻的了解印象。
请看表演????
一,什么是原码反码和补码
在计算机中,用0和1来表示计算机的二进制数。我们书写代码的时候将一个整数写入程序内,运行的时候它并不是将你代码中的3啊或者4啊原封不动的就进行操作,因为它根本就不认识这些东西,且它只认识0和1,所以运行前会把你的代码转换成0,1组合的数列再让计算机进行处理。
记住啦!:一个二进制序列的有符号数:第一位是该数的符号位。
第一位是0:代表该数是正数 第一位是1:代表该数是负数
1.正整数
例如:3 存于一个int型的数据空间内
转换二进制:00000000000000000000000000000011
这一串就是该数据的原码(同时也是补码和反码) ????
计算机中规定我们正整数的原码反码和补码都相同
2.负整数✨
重点主要对负整数在计算机中的存储方式:
负整数:首先转换为二进制的原码→由原码变成反码→由反码变成补码
→再将该补码存于内存中
具体该如何变呢?
我们一步一步来:例如 -3 因为它是负数,且第一位符号位为1
二进制为????:10000000000000000000000000000011 ——原码
原码的符号位不变,其它位取反,得到反码。
二进制为????:11111111111111111111111111111100 ——反码
反码加 1 得到补码
二进制为????:11111111111111111111111111111101 ——补码
再将该补码以十六进制的形式小端方式存于我们的内存中:
你都掌握了嘛?如果该文章对你有帮助的话记得帮我点点赞哦!谢谢啦????
有什么问题和疑问的话欢迎大家留言私信~江湖再会????