计算机二进制存储

本文介绍了二进制存储在计算机中的应用,详细解释了原码、反码和补码的概念,以及为何计算机选择使用补码。此外,还讨论了不同类型数据的强制类型转换可能导致的问题,以及大小端存储的区别。
摘要由CSDN通过智能技术生成

一、认识二进制存储

各位同学大家好,John又和大家见面了,拖更了几个月,接下来John会一周更新一条博客分享自己的一些学习经验、学习方法尽可能地满足大家对C语言的好奇心、求知欲。前面我们讲过‘%(符号或字母)’(占位符)的转换说明功能,能将我们格式化的数据打印出来,而数据、变量则被格式化为二进制,众所周知CPU只有加法功能,那计算机又是怎么实现减法功能的呢?科学家又是如何让电脑通过加法来计算减法呢?如果CPU通过通过识别负数来进行加法,我们之前也说过计算机的变量和数据都是以二进制的方式存储在内存中,如果是这样的话,那计算机又是如何对负数进行标记的?

二、原码、反码、补码

计算机存储的并不是数据的原码,而是数据的补码,再熟悉原码、反码、补码之前,我们要了解计算机如何用二进制存储负数,不管是原码,还是反码或是补码,第一位二进制位都是符号位,符号位为1代表该数为负数,符号位为0代表该数为正数。再接着我们来了解原码,反码,补码。

正数原、反、补码与负数原、反、补码的差别则是正数的原、反、补都相同,负数原、反、补码按照下面规则来执行。

原码:数据表示为二进制的初始码。

反码:将原码除符号位外进行按位取反操作(~)(将二进制位上的1置为0,将二进制位上的0置为1)得到的二进制代码。

补码:在反码的基础上加一。

至于为什么计算机存储的是补码,那是数学家的数学思想,通过补码来进行相加就不用管左操作数和右操作数的正负,也可以说是第一操作数和第二操作数的正负)而且将原码转化为补码或是将补码转化为原码都只需要按位取反再加一就行了,不需要给计算机提供其他硬件支持。

三、强制类型类型计算

在计算机中一种类型类型和另一种类型的数据变量做运算是一件再平常不过的事情,所以我们应当知道计算机结果出错了并不是因为计算机出了问题,而是强制类型转换本身的不安全性。两种不同存储单位、存储方式强制类型转换可能会发生截断现象:计算机只读取强制类型转换的字节大小。

四、大小端存储

不止是计算机语言在计算机上实现有差异,存储也有差异。大小端则是计算机开发者引入的一个概念,这个概念展示了计算机开发者丰富的想象力,该概念在对数据处理、数据结构中有一定的作用。等以后John有机会接触到了,一定和同学们分享。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值