程序的运行离不开数据,所以在本数据章节我们会比较详细的讲解不同数据的重要内容
本章主要讲解一些基础知识便于后面后面的数据类型学习,如果本章知识都懂的同学可以直接从下章开始阅读
目录
一.常量和变量
二.位,字节和字
三.四种进制形式
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 <stdio.h>
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打印
好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈