c语言用int取整取了小数_从计算机原理的角度谈C语言数据类型

初学C语言,首先要接触的就是数据类型了,这也是学习任何一门语言所必须经历的阶段。很多同学在学习的时候不理解数据类型,因为对计算机及原理知之甚少。所以,在学习数据类型之前,如果你要是知道计算机的工作原理,那么会对这里的学习、理解有非常大的帮助。

1165f1b37940bd1bbe23f4369d4532d0.png

开关的原理:继电器

计算机原理简述

简单来说,计算机内部全部都是由一个个很小的“开关”组成的。这些开关太多太多了,组成了一个个逻辑电路,然后就能进行运算。而计算机是用0和1表示数字的,一个开关就能代表0或者1,那么很多个开关就能有很多种状态,能表示很多数字。比如111表示十进制的7,至于它为什么代表7,你现在可以不用知道。你只需要知道计算机内部全部都是0和1就可以了。

d5d9ccafd3bb02aacd577cd52569db22.png

继电器组成的“或”门电路

数据类型

现实世界中,常用的只有两种数,一种是小数,一种是整数。计算机中是只认识0和1的,为了让编程更简单,C语言规定了计算机用几个连续的开关来表示一个小数或者整数。“开关”,在C语言中叫做“位”。一个开关有两种状态,0和1,一个开关就表示一“位”。

接下来我们来看一下数据类型和“位”的关系。就拿能满足大多数编程需求的int类型和float类型来说。

9f2cb6d07d58d90de607bd15513e46d9.png

二进制位

int类型表示整数类型。一般的,一个int类型占用32位,就是32个开关,具体占用多少和计算机有关。这里就当做是32位吧,这32个开关在内存中是连续的。就是说,你定义了一个int类型的变量,就在内存中找一块连续的32个开关,每个开关表示0和1两种状态,那么它总共可以表示2的32次方个状态,也就是4294967296种状态,那么每一种状态就可以表示一个数字。所以呢,计算机内部就是这样来表示一个整数的。读取的时候,就把这些开关的状态读取出来就行了,它就能表示一个数字。

88476021feeead4f0b98d50bb38bdaa8.png

真值表

至于哪种状态表示什么数字,这些你并不需要关心,C语言已经帮你把底层的这些东西封装好,你只需要在程序中用就行了。比如你要定义一个值为10的变量a,那么你需要这样写:int a = 10;这样就行了,底层实现完全不用你操心。

至于float类型,其实和int类型没什么差别,还是很多连续的开关存储,不过C语言规定了哪些开关表示小数的整数部分,哪些开关表示小数部分。其它的数据类型,像char、double等底层实现原理都是类似的,明白了这些,相信你一定对C数据类型有了更深刻的理解。

本文系小博客网站原创,转载请注明文章链接地址,欢迎点击下方链接查看更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值