【C语言】数据在计算机中的存储与运算

一,概述简单描述数据
以Ç语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的。比如说INT,布尔,浮子等等。这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型是架通人类思维与计算机的桥梁。
我们知道。依照冯诺依曼体系,计算机中并没有这些int float等等,而全部都是0和1表示的二进制数据,并且计算器只能理解这些0和1的数据。所以说,所有的数据在计算机里面都是以0和1存储和运算的,这是冯诺依曼体系的基础。因此,符合我们人类思维的数据都要通过一定的转换才能被正确的存储到计算机中。


二,进制
要想理解数据的存储,首先要明白最基本的二进制问题,因为,这是计算机中数据最基本的形式,首先看下面的问题:
?1,什么是二进制进制的概念
?2,计算机中为什么要用二进制
3,二进 和符合人类思维的十进制之间的关系?
4,为什么又会出现八进制,十六进制?
5,所有进制之间的转换?


(1),的进制概念
进制也。就是进位制,是人们规定的一种进位方式。对于任何一种进制--- X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一
在采用进位计数的数字系统中,如果只用r个基本符号表示数值,则称为r进制(Radix-r Number System),r称为该数制的基数(基数)不同的数制共同特点如下:
(1),每一种数制都有笃定的符号集例如,十进制数制的基本符号有十个:0,1,2 ...,9二进制数制的基本符号有两个:0和1 。
(2),每一种数制都使用位置表示法。即处于不同位置的数据所代表的值不同,与它所在位的权值有关。
例如:十进制1234.55可表示为
1234.55 = 1×10 ^ 3 + 2×10 ^ 2 + 3×10 ^ 1 + 4×10 ^ 0 + 5×10 ^( - 1)+ 5×10 ^( - 2)
可以看出,各种进位计数制中权值的恰恰是基础的某次幂。因此,对任何一种进位计数制表的数都可以写成按权展开的多项式。
(2),计算机中为什么要二进制用
电脑使用二进制的英文由它的实现机理决定的我们可以这么理解:电脑的基层部件是由集成电路组成的,这些集成电路可以看成是一个个门电路组成,(当然事实上没有这么简单的)。
当计算机工作的时候,电路通电工作,于是每个输出端就有了电压电压的高低通过模数转换即转换成了二进制:高电平是由1 表示,低电平由0. 表示也就是说将模拟电路转换成为数字电路。这里的高电平与低电平可以人为确定,一般地,2.5 伏以下即为低电平,3.2 伏以上为高电平
电子计算机能以极高速度进行信息处理和加工,包括数据处理和加工,而且有极大的信息存储能力。数据在计算机中以器件的物理状态 表示,采用二进制数字系统,计算机处理所有的字符或符号也要用二进制编码来表示。用二进制的优点是容易表示,运算规则简单,节省设备。人们知道,具有两种稳定状态的元件(如晶体管的导通和截止,继电器的接通和断开,电脉冲电平的高低等)容易找到,而要找到具有10种稳定状态的元件来对应十进制的10个数就困难了
1 )技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1” 和“0” 表示。(2)简化运算规则:两个二进制数和,积运算组合有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。(3 )适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“ 真” 和“ 假” 相吻合。(4 )易于进行转换,二进制与十进制数易于互相转换。(5 )用二进制表示数据具有抗干扰能力强,可靠性高等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低。


(3),进制八十六状语从句:进制出现的英文为什么
人类一般思维方式是以十进制来表示的,而计算机则是二进制,但是对于编程人员来说,都是需要直接与计算器打交道的,如果给我们一大串的二进制数。比如说一个4个字节的int型的数据:0000 1010 1111 0101 1000 1111 11111 1111,我想任何程序员看到这样一大串的0,1都会很蛋疼。所以必须要有一种更加简洁灵活的方式来呈现这对数据了。
你也许会说,直接用十进制吧,如果是那样,就不能准确表达计算机思维方式了(二进制),所以,出现了八进制,十六进制,其实十六进制应用的更广泛,就比如说上面的int型的数据,直接转换为八进制的话,32。/ 3余2也就是说,我们还要在前面加0,但是转换为十六进制就不同了.32 / 4 = 8,直接写成十六进制的8个数值拼接的字符串,简单明了。
所以说用十六进制表达二进制字符串 无论是最佳的方式,这就是八进制和十六进制出现的原因。


(4),进制间的相互转换问题
常用的进制有二进制,十进制,八进制和十六进制
①,八进制,十六进制,二进制-------------->十进制
都是按权展开的多项式相加得到十进制的查询查询结果。
比如
二进制1010.1到十进制:1×2 ^ 3 + 0×2 ^ 2 + 1×2 ^ 1 + 0×2 ^ 0 + 1×2 ^( - 1)= 10.5 
八进制13.1到十进制:1×8 ^ 1 + 3×8 ^ 0 + 1×8 ^( - 1) = 11.125 
十六进制13.1到十进制:1×16 ^ 1 + 3×16 ^ 0 + 1×16 ^( - 1)= 19.0625


②,十进制-------------->八进制,十六进制,二进制
都是按照整数部分除以基数(R)取余,小数部分乘以基数(R)取整
十进制10.25到二进制:整数部分除2,一步取余小数部分乘2,取一步整


八进制到十进制,十六进制到十进制都是和上面的一样,只不过不在是除2乘2,而是8或者16了,这是根据自己的基数来决定的


。③,二进制<-------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值