百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

新手学编程《三体》冯·诺依曼和秦始皇3000万大军

yund56 2025-02-25 12:31 15 浏览

前五篇有的编程里面其实有很多内容了,新手要认真琢磨程序运行的各个环节。我们来说说简单的东西,也是最基本的东西,那就是数据。数据有数据类型,C语言常用的有整型,长整型,浮点型,双精度型,字符,字符串,数组,指针,结构,枚举等,不过最常用的是整型、字符、数组,指针。不过我以前说过了,这些东西,都是对数据的封装,最最最(重要的事情说三次)基本的是二进制!

在科幻小说《三体》中,牛顿同学发现了万有引力,并且知道要用他发明的微积分(大学要学习)去求解出三体(三个星球)的运行规律。但是当时的条件是没有计算机的,于是他和冯诺依曼找到了秦始皇!秦始皇有3000万大军,纪律严明。于是冯诺依曼用这3000万大军来计算微积分,他要把这3000万大军建立成一个计算机系统。每一个人代表一个逻辑单元,手中有两面旗,一个黑旗一个白旗,组成三角结构。三角形顶点看前面两个人举的旗来决定举自己的旗:

1、或门逻辑单元:底边前面两个人有一个人举白旗,顶点的那个人就举白旗;如果底边两个人都举黑旗,顶点的人就举黑旗。

2、与门逻辑单元:底边两个人只要有一个人举黑,顶点那个人就举黑旗;如果底边两人举白旗,顶点那个人才举白旗。

最后建成了!秦始皇一声令下,由3000万大军组成的计算开始运行自检!旗子翻动,CPU运行,总线上各种战马开始跑起来!非常壮观!当然如果谁举旗出错了,查出来就要看头的!

其实白旗代表1,黑旗代表0,上面的两个逻辑单元就是二进制的或与运算。

或门:1|0=1;1|1=1;0|1=1;0|0=0;

与门:0&1=0;1&0=0;0&0=0;1&1=1;

二进制就是计算机最基本的数据,在器件上就是通电的是1,不通电的是0。什么是二进制?010100010这些都是二进制,二进制就是逢2进1。1+1=10。10就表示是十进制的2。十进制是0到9,二进制是0到1。

在计算机中,所有的数据,都是二进制的封装,比如整型(int)表示整型数据,在一些系统中,int表示32位,四个字节,一个字节8位,每一位你可以是0或者1。其他数据类型也类似。

可以下载二进制转换的APP看一下,十进制对应的二进制是多少,截图如下:

上图是十进制10,二进制它就是1010,十六进制就是A了(十六进制,从0到9到ABCDEF),八进制是12(八进制是0到7,逢8进1,不能读成一十二,读一二)。

可以输入其他浮点型数据比如1.0,看看二进制是多少。我们经常看到的十进制,在计算机中都会用二进制代替的。所以我们编程的时候很少用到二进制,特殊情况下需要用到二进制。

好的!继续我们的编程,认识这些数据,理解一下计算机之父冯诺依曼大师的智慧以及秦始皇3000大军的壮观景象!

#include

int main()

{

int a = 1;

float a1 = 1.0;

double a2 = 1.00;

char b = 'b';

char b1[] = { 'b', 'c', 'd' };

int c = 0;

int result = a + a1;

int result1 = a | c;// 或

int result2 = a & c;// 与

int result3 = ~c;// 非

int all[] = { result, result1, result2, result3 };// 把结果都放到这个整型数组

// 可以试着写其他运算//加减乘除求余,除是/,求余是%。

printf("result=%d,result1=%d,result2=%d,result3=%d\n", result, result1, result2, result3);

for (int j = 0; j < (sizeof(all) / sizeof(all[0])); j++)

{

printf("result%d:%d\n", j, all[j]);

}

// 留给大家写字符相关的,把上面的字符数组输出

return 0;

}

前面的int,float,double是整型,浮点型,双精度型,因为计算机里面最重要的是内存,它是有限的。所以每个类型所占的空间是不一样的,float占得空间就比int大,double就更大一些。比如0,最合理的应该是只要一位来存储它即可,如果你用64位来存0,有点浪费了吧。所以每种数据类型,都有它自己的用处,能用int表示的数据比如100,你就不要用float了。当然这种2.0有小数点的,int就无法表示了,需要float来!

所以上面的程序中,有一个函数你们初次看到,就是sizeof,这个函数就能得到你这个数据占多少字节了。

sizeof(all) / sizeof(all[0])是什么意思呢?all是一个整型数组,但是我们不知道它里面有几个数,怎么办?那就用sizeof(all)这个方法知道all一共占了多少字节,然后除以它存储的一个数据类型为int所占的字节,就得到它一共有几个数了。

好了,大家可以把代码复制或者自己写(我是直接在C4droid打的代码)到手机的编程软件中。然后运行!成功后,看看逻辑,然后完成留下的小练习,怎么打出字符数组里面的内容。

最后,介绍下C4droid设置相关的东西,就是菜单哪里的英文是什么意思:

上图的英文我解释下:

Open (打开),New(新建),Save(保存),Compile(编译),Run(运行) 。

下拉菜单:

Autocomplete 自动补全(编码提示),Find查找,Go to Line 跑到某一行,Compiler output 编译输出,Format source 格式代码,对齐,Export导出(要导出执行程序,就点这个)Preferences(更多设置)。

最后提醒调试代码问题:

看上图,如果我缺少了“;",点击compile的时候会提醒哪一行有错误,非常方便。所以,一般都是先新建,然后写代码,写完了,compile一下,如果成功,就可以run了。

我上面留的代码,最后会输出什么结果?有兴趣的同学一定要亲自动手把代码敲进手机的C4droid软件,或者有问题的也可以到下面的微信公号找我!

作者:谋哥,微信公号vjiazhi,略懂技术产品运营。

相关推荐

一对多查询,Vlookup公式组合Countifs,详细解读!

我们模拟工作中的使用场景,只保留了关键的两列数据需要根据部门条件,把所有的员工信息给匹配出来首先,当存在多个结果值时,我们去查找的时候,只会返回第一个出现的值:=VLOOKUP(D2,A:B,2,0)...

自动获取vlookup函数的第三参数,再也不用一列一列的数了

对于vlookup函数,很多人都有会这样的想法:vlookup函数的第三参数为什么就不能自动的获取到呢,还需要一个一个的数太烦人了。有没有什么方法能自动的获取vlookup函数的第三参数呢?当然有了,...

VLOOKUP函数比对一般用法

格式"=VLOOKUP(要查谁,在哪查,返还值为查询范围的第几列,精确还是近似)"。中间用逗号隔开。如:A列为全部人员姓名,B列为对应全部身份证号码,C列为部分人员姓名(有在A列里的,...

VLOOKUP的这些坑,你都知道吗?

VLOOKUP的这些坑,你都知道吗?VLOOKUP是大家常用的查找引用函数,很多人正式学习Excel都是从这个函数开始的,但有的时候VLOOKUP却不太听话,公式返回错误结果,让人苦不堪言。有时明明数...

重塑Excel体验:VLOOKUP与公式联动,轻松实现多列信息一键匹配!

真心羡慕啊!每次我都要慢悠悠地一个个用VLOOKUP去找数据,跟蜗牛爬似的慢,还容易出错,可你看看人家同事,手一挥,几十秒就搞定了,那叫一个利索!步骤一:输入VLOOKUP函数并设置查找值在需要输入公...

巧用Vlookup函数揪出“第三者”

在一张Excel表格的重复记录中,让你快速列出每种不同物品第2次或第n次出现的记录,你会怎么做?Vlookup函数就有这个本事。举例来说,产品或者物流表格中往往会记录有同一货物的多笔数据(如下图的今日...

一次匹配多个值,Vlookup、Xlookup、Filter公式,你用哪个

举个工作实例,左边是员工信息表数据需要根据编号,把后面所有的信息一次性的匹配出来工作中,经常遇到这种问题,有3个公式,可以快速的解决,分别是VLOOKUP公式,XLOOKUP公式,Filter公式1、...

Excel实例:VLOOKUP与XLOOKUP双条件精确查找、模糊查找

咱们今天通过实例聊聊VLOOKUP和XLOOKUP,看看它们在精确和模糊查找上有什么不同。我们假设有一个数据表,这个表里有地区、品类以及对应的金额。根据大区和品类这两个条件,来查找并匹配出相应的金额数...

带超链接的Vlookup公式查找匹配,你会么

举个例子,左边有源数据,现在我们需要根据部分员工数据,查找匹配工资,并且带一个超链接,当我们点击工资数据时,自动跳转到原数据位置1、查找结果正常我们想查找匹配出结果,用vlookup公式,或xlook...

Vlookup公式查找出错,原表明明有数据

Vlookup公式天天用,但是经常出错,还找不出原因,今天分享3步检查曲,举个工作中的例子:左边是工资表,需要查找匹配部分员工的工资数据1、公式引用出错我们使用VLOOKUP公式,查找匹配,输入的公式...

不用嵌套其它函数,VlOOKUP实现一对多查找

在处理日常工作时,我们常会遇到一份详细的花名册,其中记录了众多人员的多项信息。然而,当需要从这份名单中快速提取特定人员的相关资料时,一个常见的问题是:目标信息与花名册中的列顺序并不一致。如图所示:面对...

VLOOKUP函数开挂用法:多表多文件多区域查找大揭秘

在日常办公中,Excel堪称我们的得力助手,而VLOOKUP函数更是其中的明星,被大家广泛运用,堪称“数据查找神器”。说起VLOOKUP函数,相信大家都不陌生。最常见的用法,就是在一个表...

按需填充 根据指定数字填充重复数据

由于公司启用了新标签,现在需要根据盘点产品数重新打印指定数量的标签。比如冰箱4台,洗衣机2台,那么就要在D2:D5数据区域复制4个重复的冰箱品名、2个重复的洗衣机品名,以此类推(图1)。手动复制容易出...

那些可以替代VLOOKUP的函数们!

大家好,今天我们来讲讲那些和VLOOKUP功能一样的函数们,但是却没有VLOOKUP函数那么有名气,所有总是嫉妒VLOOKUP函数。VLOOKUP函数大家肯定都很熟悉了。VLOOKUP函数是一个查询类...

VLOOKUP跨表查找,你会吗?

VLOOKUP跨表查找,你会吗?VLOOKUP函数是大家最常用的查找引用函数,我们在工作中经常用它按照条件查找对应的数据,但是当数据源分散在多张工作表中时,你知道怎么跨表查找吗?今天我通过一个Exce...