RSS订阅 | 匿名投稿
您的位置:网站首页 > 相关知识 > 正文

计算机编程领域的知识

作者:habao 来源: 日期:2020-10-30 11:14:49 人气: 标签:计算机网络相关知识

  ++ 哪个好找工作,学前端好还是后端好,该学 Vue 还是 React。。。 仿佛看到了自己当年的模样,所以觉得有必要单独写一篇文章,单纯以一个应届毕业生的身份聊聊,我认为大学四年,计算机科班学生应该学些什么,哪些才是重点。 同样大学四年,为什么有些同学毕业就能成为大厂 Offer 收割机,各种 SP、SSP 拿到手软,有的同学明明在学校写了好多网站,项目经历满满,经历春秋招,却找到一份工作都很难。不能说后者没认真学习,或许是用力的方向不对。话不多说,直接进正题吧。

  人类的知识边界一直在不断的扩张,俗话说学无止境,这放在计算机领域也同样适用,计算机本身是一个人造科学,不属于自然科学。 每年,甚至每个月都不断有新的编程框架推出,学到头秃你也学不完,也没有必要去挨个学。 并且你会发现,很多一二线大厂内部用的东西基本都是自己搞一套的,比如服务发现、RPC、KV、DB、消息队列、日志、等等。 所以一般这些大厂招聘的时候基本不会因没学过某种框架而挂你,反正很多东西都是要进来重新学的。 他们会更加关注你的基础知识、解决问题的经验以及聪明度这种更加通用的能力上。 反而是一些小公司,可能会要求你必须会 Spring、Vue、Redis... 这些框架或者组件。

  某家外包JD 分别是腾讯、阿里、某外包公司的招聘 JD(job description),显然,腾讯阿里看中的是扎实的编程基本功和快速学习能力,这意味着有培养潜力。 而外包公司就要求你会 xx数据库、Spring 之类。不去评价哪个好,但是如果你想去 BAT,那是不是至少对照着它们的 JD 来提高自己的能力,不失为一种捷径。 在这里,我的把计算机编程领域的知识分为三个部分:

  基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。 特定领域知识就是你从事某个细分方向时需要掌握的知识,比如做游戏引擎的需要掌握图形学;做前端的需要掌握浏览器渲染原理、前端三大件;算法工程师需要更多的数学知识。 毕竟计算机各种门类挺多的,需要选个细分方向专研下去,什么都学只会什么都不精(大佬除外啦。

  现在大比较浮躁,很少有人愿意花心思在基础上,喜欢直接学Python机器学习、写秒杀、做商城。 找工作的时候都是想看面经、总结速成。 但是作为优秀的计算机系学生的你怎么能流于各种编程框架(造框架除外),纠结学 SpringBoot 还是 SSH 呢? 把时间花在算法、基础学科上他不香吗?功利一点讲,回报反而会更大。 况且在计算机领域,很多基础的理论并不十分高深,我们努努力就可以掌握其中的核心知识。

  首先说明,这里把数学列出来不是为了显得高端,而是自己吃过数学的亏。 如果你是自学转行当程序员,我当然不会推荐数学,因为转行的大概率是去学 Java、前端这类,对数学基本没啥要求。 但是这篇文章主要面向的是还在大学的科班学生,这部分同学以后也许会去做算法(CV、NLP之类)、游戏引擎、信息安全编码等 这些方向对数学要求就会偏高,在计算机领域,线代、概率论、统计学这些数学分支相对比较重要,计算机本质上还是离散的。 比如在机器学习或数据挖掘中常常用线性代数来降低数据维度,很多问题最终都能化为求解线性方程组。 所以为了避免以后想走这些方向却被数学卡住,在大一、大二上数学课的时候就好好的学一下。 书到用时方恨少,不要现在以为没用处就不好好学,等你需要的时候,就知道后悔了。(默默流下了不学无术的眼泪┭┮﹏┭┮ 什么?你说以后肯定做开发方向? 那的确可以把数学优先级放后面一点,用得确实不多,不过上数学课的时候总该认真听下吧,拿个高绩点也是百利无一害嘛。说不准哪天你又想加入算法内卷大军呢?

  你也许会很疑惑,这里明明说基础知识,为什么要把一门编程语言单独列出来呢? 因为在我看来,没有比 C 语言更适合用来理解计算机系统了。 我们后面将会提到的操作系统、体系结构 这些东西非常适合用 C 语言去理解或者去实践。 并且 C 语言本身的语言特性非常少,但是想学好又是不容易,很多人都觉得 C 语言难,难在哪里呢?回想了一下我大一时的感受:

  不巧的是,这些东西正是计算机系统知识的一部分,所以用 C 语言作为学习计算机系统知识是最有效率的方式。 真的很难想象用 Java 或是 Python 去给别人内存,因为这些语言抽象程度都比 C 语言高,意味着离计算机系统也就越远。 在TIOBE 编程语言排行榜上,C语言几乎永远占据前三位,其地位自然毋庸置疑。

  TIOBE-2020排行榜 而且几乎你开发中用到的很多东西都是用C语言编写的,Linux、Nginx、Redis、MySQL、Git......或许你会想要探究下原理,阅读点这些开源软件的源码,那么 C 语言也是你必备的军刀。 深入学习 C 语言,能够了解计算机底层的执行原理,是理解程序运行机制的绝佳语言,无出其右。 在这里,不得不引用对C语言最经典的总结:

  任何比C语言更低级的语言,都不足以完整地抽象一个计算机系统;任何比C高级的语言,都可以用C来实现。

  这真是极高而中肯的评价! 所以对于计算机科班来说,不管你是做前端还是后端,算法还是开发,C 语言都你好好学习。这是无关方向的一门语言,就是基础!

  我们编程的 IDE、写出来的程序全部都需要运行在操作系统上,说操作系统是计算机软件的基石也不为过。 程序运行起来就需要创建进程,这涉及到操作系统的进程管理;写程序需要定义变量、存储数据吧,这又涉及到内存,对应内存管理;有时候我们还需要读写文件,这又离不开和文件系统打交道;你需要学习使用锁、条件变量、临界区来程序并发执行时不会。 而读写文件、分配内存这些又离不开系统调用(System call)。 并且当你真正做起工程就会发现,很多问题是和操作系统紧密相关的,不理解操作系统,你连问题的原因都分析不出来。 比如前段时间我们出现的在基于协程(libco)的框架下,使用多线程的锁去做同步互斥偶发死锁,后来分析才发现原因: 由于协程是应用层实现的,一个线程内多个协程对于操作系统是不到的:

  协程模型 那么当一个协称 A 上锁后发起网络 IO 请求,这个时候会被切换到另外一个协程B,而协程 B 又去请求这个锁。 那么这个时候操作系统会认为这个锁已经被上了,因此会将协程 B 对应的线程挂起到等待队列,这样的话就导致协程 A 永远无法运行,也就无法锁,导锁。 解决的方法也很简单,就是将锁设置为可重入锁,可重入意味着同一个线程多次去请求同一个锁不会导致挂起。这样当协程 B 再去请求锁的时候,操作系统就会认为协程 B 所在的线程已经持有这个锁了,直接返回,继续执行。 总之,我们写程序每时每刻都在和操作系统交互,没有理由不学好。

  编译原理可能是我们平时接触得最少的了,大家也许会觉得自己又不用去造新的编程语言,学编译原理干啥。 学好编译原理有啥用? 你会站在更高的角度去审视这些编程语言,看到的不再是表面的语法,更会想到语法背后的实现。 这种感觉很透彻,就像搞懂了操作系统、体系结构你会明白一个程序从双击鼠标开始,到底是如何被运行起来的,这种掌握一切细节,透彻的感觉,真的很奇妙,不信你去试试。 说人话! 那学了编译原理你能干啥? 当你学完有限状态机以后,你会发现以前觉得很牛逼正则表达式似乎自己也能用 DFA、NFA 实现一下了。状态机的思想在编程中很多地方都用得上。 比如解析 HTTP 协议,如果没学过状态机思想,你可能会一行行的if/else 去做解析,这里最麻烦的地方在于,if/else 需要提前将 HTTP 头部字段都接收到再来判断,而我们知道 HTTP 基于 TCP,而 TCP 是流式传输,所以你很有可能是几个字符一组组接收到的,这个时候用 if/else 写出来就很难看了。 而用状态机编写起来代码就会非常优雅。状态的转移是由规则驱动的,接收到一个字符就判断一个,非常的方便。 继续学完语法分析,你会掌握递归下降分析这样非常重要的思想,你可以使用递归下降快速的实现四则运算计算器。 如果不用递归下降你可能需要先中缀表达式转后缀,然后求值,这是我们大一数据结构课写的,当时用栈写的,有点麻烦。后来学完编译原理,又用递归下降重写了一遍,区区几十行代码遍搞定。 还有一类场景在实际开发中的用的很多,比如淘宝、京东这样的电商,它们的营销规则有很多,比如满减、直减、跨店等等,这样的规则是不可能写死在代码里的。 那是怎么做的呢? 一般会实现一个配置系统,并设计一个DSL(领域特定语言)来表达这些规则,将规则直接配置到系统中,这样可以非常方便的修改,那么如何在代码里去解析 DSL 定义的规则呢?这就需要为 DSL 写一个语析器,这里就会用到语法分析的方法。 DSL(Domain Specific Language),是一种用于某个特定领域的程序设计语言。这种特定于某个领域是相对于 C、C++、Python 这种通用语言而言的,通用语言可以在各个领域使用,我们熟悉的大多数程序设计语言都是通用语言,它们都是图灵完备的。 像我们平常经常使用的 JSON、SQL、HTML 这些都算是一种 DSL,你甚至可以尝试用递归下降去写一个 JSON、XML 解析器,这比写电商网站更有价值的。 继续往下学你会了解到抽象语法树 AST 如何生成、如何为中间代码、如何对中间代码优化、最终又是怎么生成机器指令的。 你会看到算法在寄存器分配中的应用,也会看到图论中的可达性分析又是如何实现死代码消除。 IDE那个绿色的编译按钮对你不再是黑魔法。 为啥点一下就能生成可执行的程序? 你写的英文字母又是如何变成一个个二进制指令的? 学完编译原理,这些通通不是问题,妈妈再也不用担心你的学习~ 当然完成一个像 GCC、Clang 这样的编译器难度太高太高,我们学习编译原理的目的也不是去造这样的轮子,而是为了更好的理解和运用编程语言。

  说的都是软件层面,体系结构则是关于计算机是如何工作的,你会了解到典型的存储程序计算机是怎样运转的。 记得南大有个老师说过 “我们不是学习使用计算机的,而是学习如何造计算机”,虽然造计算机有点夸张,但是至少我们得了解下计算机的实现原理,了解下代码是怎么被CPU执行的吧?不然其实你会很困惑,明明一堆英文字母,怎么在 CPU 这种电上跑起来的,我大一学 C 语言就百思不得其解,直到后来学了组成原理和数字逻辑。 我们说计算机中一切都是 0、1,0、1 又是通过高低电平来表达的,通过与、或、非等逻辑门电来表达二进制的数值运算,再将这些简单的电集成在一起,就形成了 ALU 等具有运算能力的处理器。 你会看到一条指令是如何被CPU执行的,CPU 从内存或 Cache 中取出指令,放入指令寄存器,并对指令译码。译码就是按照指令的编码规则,将指令拆分成一系列的微操作和操作数。然后发出各种设备控制指令,执行微操作。这样就完成一条指令的执行。 我们说学完编译原理,能够明白写的英文代码是如何被变成二进制指令的,学完操作系统能搞懂二进制程序是如何被链接在一起,又是如何被操作系统加载、执行的。而组成原理则会告诉你二进制指令是如何控制 CPU 跑起来的,我们的操作系统本质上也是一个二进制的程序。 当你理解了计算机存储层次结构,理解了多级 Cache,你就会通过优化数据访问方式来编写出速度更快的程序。 你会学到底层体系结构对 C 这些语言的栈帧和参数传递的支持,参数是如何被传递给另外一个函数的?函数的返回值又是如何拿到。 这是学习组成原理对于写代码的意义。 学这些到底有什么意义? 你会完整的看到写的代码如何变成二进制指令,又是如何去控制各种门电,最后变成屏幕上花花绿绿的程序的(当然这里可能还需要学习显示器的原理),这就是我们常说的“基础”和“原理”。 并且计算机体系结构中的很多思想,是能够广泛运用于现代软件开发的,比如 CPU 的多级 Cache 思想,就是我们现在服务器开发中提高并发度常用的缓存技术,包括缓存的替换策略等等。 当计算机对你不再是黑盒,你了解写下的代码到执行的每一步,而这也将成为你以后的核心竞争力,作为科班毕业生不应该只会使用 Java、Redis、Mysql、Spring 来写各种网站。 如果读者里有半转行或者从培训班出来的,也希望你们能够抽出空余时间去补补这些基础课,这会让你在编程这条上走的更远和更稳。

  为什么把算法放到最后来讲,是不重要吗?相反,它太重要了,所以才让它来压轴。 如果要问我大学什么最后悔?那肯定是没有从大一就开始好好学算法,去打 ACM。 现在还在大一、大二的同学还不抓紧机会,别等到以后来后悔。当然,不打 ACM,我们也是能够学好数据结构和算法的。 数据结构和算法你能在任何计算机领域里看到,比如在编译原理中寄存器的分配会用到,死代码检测与消除会用到图论里不可达的知识;操作系统进程、线程调度会用到多级队列和调度算法;组成原理中 Cache 的替换会用到 LRU、FIFO 等算法;开发必备的数据库也离不开 B+ 树、LSM 等数据结构和查找算法。 很多时候我们需要的算法都被封装到编程语言的基础库里了,以至于很多同学会觉得算法离我们太远,其实不是的。 如果不学习算法,连什么时候用 Map(红黑树实现)、什么时候用 HashMap 都分不清。 所以学习算法有助于我们根据应用场景选择最合适的数据结构。 日常开发中也一定离不开算法,比如小北最近工作中涉及的某种嵌套 TLV(Tag-Length-Value)结构编码的解析,就需要用到递归、多叉树等知识。如果不学习算法,那么程序中只能见到大量的 if/else、while/for。。。可以说不会算法的工程师一定不是一个优秀的工程师。

  很多人喜欢把计算机网络、数据库原理这些也归为计算机基础来,我当然也认同,因为一个知识结构完整的计算机科班学生,应该了解这些知识。 但是我个人是觉得计算机网络、数据库无非就是建立在操作系统、编译原理、组成原理之上的应用层软件。 什么是数据库?没有数据库之前你会用文件去存储数据,但是不方便查找、修改等,数据库只是提高了这个过程的效率。 网络干什么的?网络就是让不在同一台电脑上的程序互相通信,本质上就是进程间通信的手段。 如果你只是开发单机工业软件,甚至真的可以不学网络,只是由于现在大多数程序员都是在互联网公司工作,所以不管前后端,都离不开和HTTP等网络协议打交道。再次重申:不是计网、数据库不重要,只是我认为它们属于构建在操作系统之上的软件,不划在基础之列。

  这个我不敢说太多,因为各个领域我也不太懂。只简单提一点,抛砖引玉罢了。 如果你想去腾讯、网易做游戏引擎开发,那么图形学一定是你绕不开的知识,此外你还得学习渲染管线、着色器、物理、光照等等。 如果你想去PingCap 这样的公司做分布式存储,那么分布式理论知识一定是你绕不开的关口,包括 CAP 、Paxos 算法、Raft 算法、ZAB 协议等等。 如果你想写一个数据库,那么你需要去了解磁盘、索引实现、SQL 解析(编译原理)、事务、如何用 MVCC 解决读写冲突等等一大堆的东西,还得了解一大堆编程语言层面的东西,比如锁、信号量、并发编程技巧,不得不说造数据库是一个脏活也是一个累活。 更进一步你想去做分布式数据库,那可能还得去学习数据分片的知识,查询任务如何做,是集中做,还是将逻辑下推给各个节点,如何实现分布式事务等等。 你说你只想去大厂 CRUD?没毛病,老铁! 那你得熟悉一门编译型语言(C/C++、Java、Go),理解语言部分底层原理,比如 C++ 你得看看 STL、看看对象模型吧,你不懂什么虚函数表、智能指针还想去腾讯写 C++? Java 的你得背背 JVM,什么垃圾回收算法吧,你不看看ConcurrentHashMap 好意思说你是做Java的? 咱CRUD的对象是数据库吧?那不得学学怎么才能把数据库用好。用户通过 HTTP 访问我们得服务,总得了解 HTTP吧?顺带着不看下 TCP 三次握手、四次挥手你好意思说是学计算机的? 用户把钱、信息放咱们这,总得用户数据安全吧?那 XSS、SQL 注入、CSRF 这些常见的 Web 手段你总得了解吧?HTTPS、RSA、签名、数字证书这些安全手段总得知道吧。 双十一流量太大,老板还让你必须顶住,那你总得了解下缓存、异步、消息队列、NoSQL 这些千万 QPS 必备的大杀器吧? 看看!要想做好CRUD也不是那么容易滴。(这段只是换一种方式把做后端的同学要学的知识写出来,不是吐槽更不是调侃,纯属娱乐。

  这就很多了,包括 VSCode、Jetbrains 全家桶这些 IDE,文档编写 Markdown、Git 等版本管理工具。SSH 远程登录、端口转发,Ngrok 内网穿透等等这些提高你开发效率的工具,都算是技能,这个没啥好说的,平时用到多学习多积累就好了。 我只提一点,尽早使用 Linux、类 Unix(Mac)作为主力开发电脑。我大二的时候,就是看了王 ying 的那篇《完全用 Linux 工作》,直接买了个 SSD 套上 U 盘外壳,做了一个启动盘,后来用了将近一年的 Ubuntu,只有在选课、提交作业等需要用的 IE 浏览器的时候才会打开 Windows(这里不得不吐槽学校老古董网站!) 当然了,我也不是狂热的 Linux 爱好者,只是单纯觉得做开发的话,离不开各种安装、命令行的使用,这点类 Unix 系统带有天然的优势,谁用谁知道!

  写完才发现,这篇文章连篇幅都是「基础 : 领域知识 : 技能」 接近 7 : 2 : 1。 这也是我推荐你在大学期间分配学习时间的比例,至少学习基础知识的时间不少于 50%,当然,这些东西你都学完了那可以去找找感兴趣的方向专研一下。 千万不要大一、大二一上来就扎进 Java Web、Python 爬虫这种东西,这些可以学,但不是重点。 这篇文章由于篇幅,没有写到具体该如何去学,有哪些好的资料,我准备把这个单独再写一个 《How 篇》,持续关注我哟~ 那么如何检验学得如何呢? 想必你一定听说这个计网面试题:“从 URL 输入到页面展现到底发生什么?“ 这个问题换个表达就是「一个数据包是如何发送到另外一台电脑的」。 如果你能完整的说出整个过程,那么计网你一定是学懂了!这就是为啥面试这么喜欢问这个问题的原因。 那么我们依葫芦画瓢提一个问题 “从代码被写下到程序运行起来到底发生了什么?” 这个问题回答得越详细越好,基本上能说清楚了,你就理解了编译原理、操作系统、组成原理这三座大三。 这个问题也放在这,后续发文总结,请持续关注编程指北哦。 唉,当年要是有这么个贴心学长告诉我这些,也不至于在 Andorid 开发、Java Web、Python 爬虫这些玩大半年啊。。。 不过还好后来自己意识到了基础的重要性,开始学汇编、重学 C、搞 mini os、看 Linux 内核实现原理,最后成功的把头发掉了一把。。。 责任编辑:lq

  文章出处:【微信号:TheAlgorithm,微信号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

  简单的说就是向 head 指向的链表的 ind 插入一个由 a 指向的节点,返回值为插入新节点后....

  广东首台“天玥”自研国产计算机正式下线日,由中国航天科工二院七〇六所主办的广东省首台“天玥”国产计算机下线仪式在广州黄埔....

  值得一提的是,这次宣传的海报中提到了,生命之源”、“互联网之源”,“之源”,重点集中在这个“源”....

  作为今年最积极的国产手机厂商,vivo推出了不少5G新机,而目前他们也是成为了国内第二大手机厂商,而....

  freescale公司推出的支持CD和HDD系统的音频音乐信号处理器SCF5250.SCF5250是....

  Seiko Epson公司推出的新型容易使用而便宜的网络控制器系列S1S60020,具有高速传输和源....

  据外媒报道称,微软正计划对Windows 10进行大的重新设计,而新系统代号太阳谷,计划于2021年....

  韦东山老师就鸿蒙内核移植进行,比如:一个完整的嵌入式系统都有什么?操作系统怎么“同时运行”多个任务?支持MMU的操...

  中科创达执行总裁武文光出席论坛并就“车联如何打破行业壁垒与门派壁垒?车联网安全如何?”等议题....

  今天微软已经正式下手,推出了Windows 10的新更新(KB4577586),其中最大的变化就是,....

  STC15W4K32S4 单片机是一款非常优秀的51 系列单片机, 很适合用来作为初学者入门单片机世....

  C程序语言的编译的搭建就是指安装编译器或集成开发(Integrated Development Environment —— IDE)的安装、配置...

  Verilog是一种流行的硬件描述语言,他是由工业界开发的,1984年,Verilog作为一种私用的....

  本周,Pursim宣布发布Librem 5 USA,进一步为消费者提供了安全的智能手机。它与Libr....

  在经历了前三代产品以及4K新品之后,电视果支持WiFi/4G双网模式的全新4G版正式开售,这款产品看....

  近年来,随着我国IT技术的迅速发展,不论是在硬件还是软件领域,我国已涌现出了一批优秀的服务商,而数字....

  据报道,有消息称字节跳动正考虑推动抖音业务单独在上市,高盛等多家投行已沟通承销事宜。对此,字节跳....

  暴雪娱乐有一些受欢迎的特许经营,包括暗黑神、守望、星际争霸和魔兽世界,这些都可以通过Battle....

  多年来,微软一直在Windows作为适用于主流平板电脑(如Suce Go 2)的触摸优先操....

  半导体器件一直是沿着提高器件工作频率和提高器件功率处理能力这两个方向发展的。每一种器件在频率和功率兼....

  我经常会回忆《流浪地球》里的那个意象:一个飞向未知时空的星球,在中显得那么孤单而。但换个角度....

  智能家居魔镜像智能手机一样,具有的操作系统,可以安装软件、游戏等程序,可完成添加日程、地图、....

  在第三届数字中国峰会上,中兴通讯副总裁、MKT及方案政企部总经理李晖表示,在5G无线基站、交换机等设....

  在研究远程数字图像处理与传输的过程中,需要在远端现场进行图像处理,本文提出一个集图像采集、处理与显示....

  一 前言 如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功。 想写出精炼、优....

  数据采集记录仪在工业控制领域中有着十分重要的意义。在许多工业场合。尤其是对于一些分散的、无人值守的现....

  随着科学技术的不断发展.数据的存储和传输在嵌入式系统有了越来越重要的地位。海量数据存储是当前科技发展....

  公元2022年,10月24日,破晓时分,虽刚过中秋,离立冬尚远,清晨竟生出一阵阵寒意。树叶随风沙沙作....

  微软开发Windows 10X系统已经有段时间了,不过遗憾的是迟迟难以登场,且个中细节也是疑团重重。

  1、字符串转十六进制 代码实现:void StrToHex(char *pbDest, char ....

  众所周知,C++ 中的string使用比较方便,关于C++ 中的string源码实现可以看我的这篇文....

  现实生活中, 我们总是要与人打交道,互通有无。单片机也一样,需要跟各种设备交互。例如汽车的显示仪表需....

  在微软之前透露的目标看,Windows 10X才是未来发展的基石(原计划2019年秋季发布,但因为种....

  大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是。大侠可以关注FPGA技术江湖,在闯荡江湖、....

  图1所示为一种支持基于UML(Unified Modeling Language,统一建模语言)的迭....

  随着Windows 10 20H2的正式推送,微软开始将重点放在了新功能开发上。在近期推出的Wind....

  这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和....

  Windows 10如今已经安装在超过10亿台设备上,所以难免遇到各种各样的问题,从蓝屏到刚刚出现的....

  随着Ubuntu 20.10 Groovy Gorilla正式版的发布,作为其衍生版之一的优麒麟....

  软件跟硬件之间的界限已经越来越模糊了,那么处于这个灰色地带的,就是固件了。 这就分成三类工作者。 ....

  由原子开源基金会举行的区块链工作组成立大会举办,宣布成立国内首个区块链开源工作组。据悉,该工作组....

  1024程序员节(别称:程序猿节、码农节,英文名:1024 Programmers Day)是中国广....

  与华为、爱立信等厂商能够提供整套5G网络解决方案(从无线电接入塔到由器)不同,美国目前最大的挑战在....

  动基座光电测量平台按载体的不同可分为车载、舰载、机载和星载四种。为了测量平台系统的可靠性和测量的....

  的报告是立法分支,而司法部的起诉是行政分支,两套体系并不重合。尽管美国司法部调查了四大互联网巨....

  Parallels虚拟机与Chrome操作系统之间的集成也有望打户。根据公告,该系统具有共享的环....

  虚拟机简单来讲就是一款虚拟的机器,并不是真实存在的物体,在已经安装过系统的电脑或者其他设备上,可以通....

  Canonical昨天正式发布了包含树莓派优化的Ubuntu 20.10桌面版和服务器版系统,以支持....

  为提高复杂网络中遗传算法的子图挖掘效率,在邻接表的链式结构基础上加入双树状结构,作为一种新型数据结构....

  01、C语言和汇编语言在开发单片机时各有哪些优缺点?汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一...

  来自:程序猿(ID:imkuqin) TIOBE已公布2020年10月的编程语言排行榜。C语言依然排....

  如何对一个数组里的元素进行运算,例:u16 a[3]={1,2,3},我想进行这样的运算:(123-50)*2,然后把这个数值输出,现在的问题是,...

  用单片机控制步进电机正转 反转 加速 减速; 由LCD1602实时显示步进电机的状态;F-正转 B-反转;数字越大,转速越大; ...

  《数字电》,不学这个连推挽和开漏都分不清楚?基本的概念总要知道。 《C语言》,这个是废话,C语言研究的再深也不为过吧。...

  (晶振12MHz,一个机器周期1us.) 一. 500ms延时子程序 程序: void delay500ms(void){ unsigned char i,j,k; ...

  嵌入式C中struct与union的区别 在本系列的上一篇文章中,我们讨论了嵌入式C中的结构允许我们对不同数据类型的变量进行分组并...

  处理器如何访问内存?了解有关C语言结构以及如何使用它们的更多信息。 本文将首先解释内存访问粒度的概念,以便我们可以对处理...

  本文提供了有关嵌入式C编程中的结构的一些基本信息。 在介绍了结构之后,我们将看一下这个强大的数据对象的一些重要应用。然后...欲望情夜

  

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料