计算机,本质上就是一堆能通电的电路板。
所以,在计算机中,本质中只有两种状态,高电压和低电压。
高电压表示1,低电压表示0
所以 计算机只认识
01010101001010000111
这种二进制在一开始的时候,科学家怎么编程。真的就是写01010100101这种“程序”——》当年叫纸袋打孔编程。
那么问题来了,
0101001010101
这种程序,没人会认识,因为毫无规律可言。于是大家就规定,每8个二进制,表示一个含义。于是,
01001010101111110001
就
变成了00001010 00101101 10110011
每8个二进制,称为1位(bit),代表一个字符含义。这样,计算机就能把一堆看似毫无意义的二进制,变为有含义的东西了。
那么问题又来了,8位二进制,能组成多少种不同的组合呢?每个组合代表哪个字符呢?于是,大家制定了一个对应规则,就称之为ASCII码。这个ASCII就干了一件事,就是让不同组合的二进制 映射一个字符。比如 00110000代表“1”,00110010代表“2”。以此类推.。。
但是,谁让二进制有规律了,也无法改变二进制变成的不方便。天天写二进制,谁写谁都吐。
能不能发明一种类似于自然语言的 语言,用于变成呢?
可是计算机不认识自然语言呀?
怎么办?
找个翻译呀!!!!!
于是,编译器应运而生。
什么是编译器?一句话概括,就是把 “编程语言” 翻译成 二进制的 “翻译”。
比如你写的C语言,就是有含义的语言,但是计算机不认识c语言的语法,所以没办法运行。于是,在你的电脑上,就一定要安装一个“会说c语言的翻译”-》就是c语言编译器。你可以把它理解成:一个专门把c语言翻译成二进制机器语言的“翻译”。
这就是为什么,我们能用c语言编程的本质逻辑。 就是因为有一个编译器,能把c语言翻译成机器语言。
实际上学的的过程中你也会发现,你写的C语言,必须要先编译,然后再执行。编译是在干啥,你知道了吧。。。
同理,这世界上还有java语言的编译器,go语言的编译器,等各种编程语言的编译器。可以说,市面上的所有编程语言,都有一个编译器与之对应,用于把它翻译成机器语言。
你在电脑上用的开发软件。其实就是一个 集成了编辑器(写代码的地方),编译器(翻译代码的)工具罢了。像这样的工具还有很多很多种,你换个工具,一样可以写C语言。
所以,现在你理解了编程到底是在干啥了么?
剩下的,就是学习c语言的语法了。