数据与C(位,字节,进制转换和C数据内部存储)
创始人
2024-05-25 10:22:49
0

程序的运行离不开数据,所以在本数据章节我们会比较详细的讲解不同数据的重要内容

本章主要讲解一些基础知识便于后面后面的数据类型学习,如果本章知识都懂的同学可以直接从下章开始阅读

目录

一.常量和变量

二.位,字节和字

三.四种进制形式

1.简单介绍

2.将十进制打印成八进制和十六进制。

3.将十进制打印成二进制

四.C语言数据的存储

五.C语言的数据类型及关键字

一.常量和变量

常量:在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化

比如 #define pi 3.14 这里就是pi包含数据3.14的常量(#define 也是一个预处理指令)

变量:在运行期间可能会改变或被赋值

如 int num = 1; 这里num就是一个变量,值可以随时改变。而一般情况下使用常量可以用#define来定义,或者直接使用数字计算就好了。而存储一个值的变量一般也称之为标量变量

在这个程序当中。a为变量,10和MAX都是常量

二.位,字节和字

位:计算机最小的存储单元(内存的基本构建块),可以存储0或1

字节:常用的计算机存储单位,对于所有计算机来说,1字节等于8位,8位就相当于2的8次方等于256,所以可以表示0~255的整数和一组字符

字:设计计算机时给定的自然存储单位,对于8位的微型计算机,那么一个字长只有8位,现在计算机字长一般都为32位或64位的了,计算机的字长越大,其数据转移越快,允许的内存访问也就更多

1 Byte =8 bit

1 KB = 1,024 Bytes = 8192 bit

1 MB = 1,024 KB = 1,048,576 Bytes

1 GB = 1,024 MB = 1,048,576 KB

1 TB = 1,024 GB = 1,048,576 MB

三.四种进制形式

1.简单介绍

1.十进制:以0~9数字组成,不能以0开头。显示十进制:%d

2.二进制:由0和1两个数字组成

3.八进制:由0~7数字组成,以0开始。显示八进制: %o。显示八进制数同时显示前缀: %#o

4.十六进制:有0~9和A(10)B(11)C(12)D(13)E(14)F(15)组成,以0x开始。显示十六进制: %x。显示十六进制数同时显示前缀: %#x

计算机内部是基地为2的数值系统。(基底为2就是每一位的编号对应2的相应指数)

2.将十进制打印成八进制和十六进制。

下面我们来看个例子,将十进制打印成为八进制和十六进制

3.将十进制打印成二进制

将十进制打印成二进制,这里没有现成的占位符或函数给我们用,所以我们必须自己编写响应功能的函数。我这里给大家讲解一个。这个函数的算法逻辑思维就是

除2取余,逆序排列

我们都知道,想把十进制转换为二进制,就必须不断先除十进制数,如果整除对应余数为0,否则为1。然后接着除以上一次的商。

而用编程思维实现,先建立一个转换函数。然后通过传递给函数一个实参,将实参先%2得到余数,然后在/2给到这个函数,进行递归。直到<2后就判断结束。这里大家自己先用着试试。因为涉及到很多后面的知识点,所以这里只需要大概了解下就好了。

这是代码源码,大家可以在自己电脑上面试试

十进制转换为二进制打印:

#define _CRT_SECURE_NO_WARNINGS#include void decimal_binary(int decimal);int main(){int a = 173;printf("十进制a: %d ", a);printf("二进制a:");decimal_binary(a);return 0;}void decimal_binary(int decimal){if(decimal > 1){decimal_binary(decimal / 2);}printf("%d", decimal % 2);}

四.C语言数据的存储

其实C语言的数据其实就两大类整数和浮点数(字符其实也算整数。而字符串就是字符组)。为啥为这样呢。因为计算机内部就是二进制,只有0和1,所以本质上,都是数据的存储和输出都是二进制格式的不断转换。

我们首先来看整数存储

整数是啥样子的。比如7是整数,但7.0就不是整数而是一个浮点数。0.7e1也是浮点数。

以一个字节来展示,置于为啥呢,因为整数的类型有很多,不同的整数类型,所占用的内存呢字节都不一样,所以为了方便理解,我们就用一个字节进行理解)

而浮点数的存储则分为了两个部分,小数部分和指数部分

比如7以浮点数存储(0.7e1),小数部分0.7,指数部分就是1

五.C语言的数据类型及关键字

Int:整数类型,占4各字节(32位),用占位符%d打印

Long:长整型类型:占内存空间比int多(不一定,具体的可以用 printf("%zd",sizeof(long))看一下),用占位符%ld打印

Short:短整数:占内存空间比int少,用占位符%hd打印

Unsigned:无符号的整数类型,用占位符%u打印

Char:字符,用占位符%c打印

Float:单精度浮点数,用占位符%f打印

Double:双精度浮点数,用占位符%lf打印


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...