笔记
底层开发
大学生一枚
展开
-
十进制数与其他进制数转换方法及原理
很多人在遇到进制转换时只知道方法,不知道原理。今天,我就为大家讲解一下其方法及原理:①十进制转其他进制的方法及原理:举个简单的例子:十进制数13怎么转为二进制数。许多人都知道用13一直除以2,取余数,最后反向将余数组合起来。但其是什么原理呢?首先它是转二进制,我们都知道二进制数是逢二进一,所以我们就看看13有多少个2是吧,于是就用13÷2得到6余1的结果,说明有6份2,余下的1不够2,所以没进,那当然这个1就是所求二进制数的个位了,此时的6已经是二进制数的属性了,其代表的十进制数为12,但是二进制数要逢原创 2020-08-19 19:30:56 · 8034 阅读 · 1 评论 -
有序图的拓扑排序
拓扑排序的结果不是唯一的上图为一个表示课程依赖关系的AOV网络,节点存在前驱和后继的关系,C0,C1只有后继节点C6,C5只有前驱节点,剩下的既有前驱节点又有后继节点。在进行拓扑排序的时候每次取一个无前驱的节点,然后将该节点从图中去掉,知道所有的节点被取完。所以拓扑排序不是惟一的。上图其中两种拓扑排序的结果如下:C0,C1,C2,C4,C7,C8,C3,C6,C5C1,C0,C7,C8,C2,C4,C3,C5,C6...原创 2021-03-12 09:37:03 · 2196 阅读 · 0 评论 -
辗转相除法原理讲解
首先介绍一下辗转相除法:即m 和 n求最大公因数(假设m大于n),先用 m 除以 n ,如果余数 r 为 0 ,则 n 就是最大公因数,否则,将 n 给了 m ,将 r 给了 n ,再用 m 除以 n ,如果余数 r 为 0 ,则n为最大公因数,否则重复执行上述操作,直至 r 为 0 ,此时的 n 就是 m 和 n 的最大公因数。相信很多人包括我在内都对这个算法不理解,我今天突然有了些想法,分享给大家。我觉的辗转相除法就是一个分块的思想,为什么这么说呢,我们通过一个例子来说明:假设 m = 72原创 2021-03-11 22:51:48 · 28238 阅读 · 31 评论 -
C语言指针和Java引用
举个例子:C语言中int a[4];a是直接指向内存的指针,通过a可直接访问内存Java中int []a = new int[4];a是存放在栈存储区的,而实际要访问的内容是存放在堆存储区中的,a中存放的就是堆存储区中某一段的地址,要想访问堆存储区中的内容,还要通过栈中的引用间接访问堆存储器...原创 2021-03-11 17:45:28 · 125 阅读 · 0 评论 -
数组的下标为什么从0开始
关于数组的下标为什么从0开始,我想这是许多初学数组的同学所疑惑的,在此我发表一些我的看法。首先假设我要定义一个int a;相信大家对这个还是比较容易理解的,这个时候系统自动为a分配2个字节的存储空间(有的编译器是4个 一般是两个),a无可厚非,指的就是那两个字节的空间,如果要给a赋值的话,直接a=2;就好了。这个时候a是一个变量,也就是说a可以等于2也可以等于别的。如果我定义一个int a[3];这个时候a就不是变量了,而是一个指针,而且要访问数组的话是从a[0]开始的。是这样的,你不是要申请3个int原创 2020-10-29 07:57:47 · 714 阅读 · 0 评论