- 博客(10)
- 收藏
- 关注
原创 2020-11-05
关于汇编语言的双重循环的程序本文参考的是王爽的汇编语言这本书,代码所对应的是书中的问题7.9如果文中叙述有什么不妥之处请批评指正。在汇编语言中,循环计数器cx的功能就是控制循环的结束条件。并且汇编语言仅有cx一个循环计数器。在执行循环时,一般先将cx设为某一个正整数,这样cx的值就相当于循环次数(当然,前提是循环体执行过程中不会改变cx的值)。但是这样就出现了一个问题,仅仅一个计数器感觉不能进行双层循环。因为在一般的高级语言中,比如C语言和java语言,在定义双重循环的时候,一般是有两个循环计数器,一
2020-11-05 23:29:29
118
原创 2020-11-02
关于ASCII码的一些理解本文参考的是王爽的汇编语言这本书,如果文中叙述有什么不妥之处请批评指正。ASCII码实际上就是两个集合的对应关系。因为人类认知描述一件事物的时候往往是根据一些符号,比如大象(elephant),狮子(lion),不管是英文还是中文,本质上就是人们约定俗成的一些符号。但是计算机并没有意识,也就是不能对这些符号做相应的理解。它只能操作二进制数字,所以ASCII码就是将计算机理解的二进制数字和人类所理解的字符产生联系。采取的方法是用计算机的一个Byte单元所能表示的正整数的个数与一
2020-11-02 22:51:17
61
原创 2020-10-07
关于起泡排序的理解本篇是根据严蔚敏的《数据结构与算法》书上写的起泡排序的伪算法写成的c语言。如果有错误或者不足之处希望看见的大神批评指正,本人将不胜感激。我们可以通过数组本身的编号来指向数组。假设数组的长度为n(即数组有n个元素,)那么i就开始指向第n个元素,逐渐递减,最后指向第2个元素,j的作用就是在j逐渐靠近i的同时比较相邻的两个元素,然后根据实际情况进行交换。j的终止条件就是i的位置。根据起泡排序的思路其实可以有两种方式,因为起泡的方向有两种 如下面两张图所示:下面是具体的代码实现
2020-10-07 13:36:04
55
原创 2020-10-06
C语言的动态数组C语言中的动态数组是通过malloc()函数和calloc()函数分配的,本次主要分析的是malloc()函数,malloc函数的功能是分配一块内存区域,这块区域的类型由用户自己指定,该函数返回的就是所分配的内存的区域的首地址。比如 int arr = (int)malloc(sizeof(int)*5);这句话就定义了一个长度为5的int类型的数组,可以看到malloc()函数还有一个强制类型转换。因为malloc()函数所返回的类型是一个通用指针,我们如果想要定义一个整数类型的数组就
2020-10-06 14:00:24
110
1
原创 2020-09-23
一道C语言的习题分析。题目(取自CprimerPlus这本书的第13章的编程练习第12t):12.创建一个文本文件,内含20行,每行30个整数。这些整数都在0~9之间,用空格分开。该文件是用数字表示一张图片,0~9表示逐渐增加的灰度。编写一个程序,把文件中的内容读入一个20×30的int数组中。一种把这些数字转换为图片的粗略方法是:该程序使用数组中的值初始化一个20×31的字符数组,用值0对应空格字符,1对应点字符,以此类推。数字越大表示字符所占的空间越大。例如,用#表示9。每行的最后一个字符(第31
2020-09-23 23:47:50
217
1
原创 2020-09-19
对数据结构的一些理解数据结构包括逻辑结构和存储结构两种。首先介绍逻辑结构。通过一些图片和叙述来表示。我们可以在脑海里想象一些东西,这些东西没有任何联系,然后将这些东西聚到一块,这样就构成了一个集合。集合就是相互之间没有任何关系的一些元素聚集到一块。比如我们就在这个圆形区域里面放一些其他图形。这些图形的形状和相对位置并不重要,重要的是他们是一些实体,并且没有任何联系。我们给这些东西编个号码,按照1,2,3,4…这样的顺序来。便于后面的文字叙述。如下图所示:逻辑就是在集合的基础上人为的给这样一些元素
2020-09-19 22:24:04
45
原创 2020-09-13
标题关于进制的理解进制的学习就首先要考虑到一个计数的问题。我们通常将某一个进制的数分为3部分来理解。这3部分分别是数码、基数、位权。数码就是我们直观上能够感觉到的一些数字。在生活中能够很快找到实物对应。比如0,1,2,3等数字。古代的计数方法有实物计数、结绳计数、刻道计数。这些计数方法能让人根据直观的视觉感受到数字的大小。这种方法的本质就是将实物的体积进行了适当的缩小。因为他始终还是还是一个记号对应着一个实物,仅仅是这个记号比实物小。显然这种方法不适用于特别大的数字。基数就是使用的数码的个数。我们
2020-09-13 21:38:21
73
原创 2020-09-05
关于static声明的讨论C语言中的对象和其他语言不同,它指的是一块具体的内存。而我们所写的C程序本质上就是对内存进行操作。比如我们写int a = 5;就在计算机里的内存里指定了一块int类型的变量。并且我们是通过标识符a对这个变量进行访问。对这块内存的操作就是将数字5放入a对象中(也就是a所指向的内存)。对象具有3个基本属性,即作用域、存储期、链接。作用域很好理解,可以看作用区域,他实际上是对象(也就是内存)的标识符所作用于整个函数的作用区域。作用域有块作用域,函数作用域,函数原型作用域,文件作
2020-09-05 11:01:18
77
原创 2020-08-29
关于单链表插入节点的伪算法分析单链表主要就是由一个一个节点组成的。我们可以根据一个链表指针就能确定一个链表中的所有参数。现在规定纸箱左边节点的指针就是p,那么我们新建了一个节点,我们同时新建一个节点,这个节点就被q所指向。为了便于叙述,我们首先确定p所指向的节点叫做M,p所指向的节点的后面那个节点叫做N,我们新建的一个节点的名字叫K,我们知道一个节点可以分为数据域和指针域,那么我们将数据域用D来表示,将指针域用P来表示。那么两个节点的初始关系就是M指向N。我们的目的就是将K插入到M和N之间。现在的两
2020-08-29 21:25:34
167
原创 2020-08-20
关于补码、反码和原码的总结在学习计算机码制的过程中,很容易搞清楚原码,反码也很容易搞清楚,但是新手一旦遇到补码就很难理解了。其实计算机本身并没有原码和反码这样的存储方式,大多数计算机就是内部所采用的码值都是补码的形式。计算机当中设立有加法器,我们设置补码的目的实际上就是求加法运算。在原码中求两个正数的加法很简单,因为不用考虑号,仅仅单纯地将两数相加即可。加法器可以直接胜任这样的工作。但是一旦遇到正数和负数之间的加法,计算机采用原码就不能解决了。我们可以这样理解。计算机所存储的就是二进制信息,我们人为
2020-08-20 22:51:53
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人