整型数据
新建项目
我们直接在解决方案下创建新的项目即可,右键单击解决方案,然后选择添加,选择新建项目即可!
创建项目之后在源文件的地方,添加main.c文件,以.c后缀命名的文件以c语言的规则运行!然后我们敲一下测试程序来看一下。
请注意敲完这段代码之后,我们就能看到输出结果就是整型数据,同时我们也要观察到,右面的解决方案里面项目2.整型数据是黑色的,也就是说我们正在运行的就是2.整型数据,如果大家没有得到想要的结果,那就看一下我们运行的是否是我们想要运行的项目,如果不是我们就可以通过右键单击解决方案设置我们想要运行的项目!
符号常量
规则#define xx
而xx就是我们的符号常量在程序里面就可以直接调用了!
左操作数和右操作数
简单来说等号左边的就叫左操作数,等号右边的就叫做右操作数。
我们可以看一下错误类型,左操作数必须为左值
左值就是可以修改的值,而我们在开头就已经定义了Pai为符号常量,所以这里显示错误,我们把Pai=6;删掉即可,或者我们直接注释掉即可。/斜杠,\反斜杠。
我们把符号常量Pai设置为 3+2,大家来猜一下我们输出i的值为多少!
i的值居然是11,这是为什么呢?i的值不应该是25吗?其实不然!
这里就要用到我们学习的编译原理了。
右键单击整型数据方案,点击属性。
找到c/c++里面的预处理勾选为是,
然后我们把项目整型数据,重新生成,会提示生成失败,不过没关系,我们去找一下我们需要的文件就行!我们把解决方案用资源管理器打开,找到DEBUG里面的整形数据,然后打来,会发现一个main.i文件,我电脑里面安装了notepad++,我就用这个打开了!大家也可以用写字板,或者word打开!不要用记事本打开!
预处理
我们会发现本来很小的文件打开却有一万多行代码,这是为什么呢,其实预处理就是把所有带#号的文件全部替换掉,这一万多行的代码就是上面头文件里所有的库函数程序代码,而我们的符号常量Pai大家来看一下你面的代码就知道了,预处理就是原封不动的把数据给替换掉,所以才有了下面的**int i = 3+2*3+2;**大家明白了其中的道理了吧!
后面我们需要把刚才预处理给调回来,否则程序只会运行到预处理部分!
整型数据的不同进制表示
计算机中存储的二进制0/1,0是低电平,1是高电平,需要供电来定时刷新频率保持高电平。
计算机中最小的单位:位(bit)比特;
Byte (bait)字节,1Byte=8bit,也就是一个字接等于8个比特!
二进制:0/1一个二进制代表一位就是一个bit
而这里就要讲一下二进制的有符号数和无符号数了。
有符号数
比如0011前面的0就代表正数,实际大小是011。
而1011前面的1代表的就是负数,实际大小是-011。
无符号数
就是没有符号的二进制数,比如0011,就是简单的二进制数0011.
而int整型数据大小是四个字节,也就是32位。
计算机里面1KB=1024byte的,这一点大家要知道!而1MB=1000KB的,但是我们的磁盘,或者内存则是公认的1GB=1000MB的大家买的电脑后者手机内存都是这样设定的!
我们简单举例
0011 0101 0111 1111 0101 0110 1100 1010一共是32位,这就是一个简单的int 整型数据!
而我们的进制转换就用下面这篇文章,这位朋友的博客讲的很好!https://blog.csdn.net/yuanxiang01/article/details/82503568大家可以去看一下。
p5 43分钟
程序在内存中的存储方式
在英特尔芯片里面数据是以小端方式存储的,也就是说,低位在前,高位在后。我们来看一下程序就明白了!
第一步:代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
断点 int i = 0x123345678;
printf("%d\n",i);
system("pause");
return 0;
}
打上断点之后,我们来运行一下, 我们看到0x0039fa0c的原始数据是cc cc cc cc cc cc cc cc,这是英特尔公司自己设置的,下面我们再运行一步,看一下内存的变化!
我们能看到,我们代码里的16进制整型数据0x12345678,就被放到了内存里,并且是以小端方式存放,但是单个字节是不反的,就像内存中的,78,56这就是单个字节。
我们程序输出的是十进制整型数据,所以我们的结果就是这样的!
不知道小伙伴们,有没有什么问题,欢迎评论区评论!下次见!