前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个运维人员的编程思维6

一个运维人员的编程思维6

作者头像
franket
发布2021-11-26 09:57:55
2550
发布2021-11-26 09:57:55
举报
文章被收录于专栏:技术杂记

数据

那么我们平时习以为常的 int,long,float,double,char,boolean,指针,string,array,hash 是不是可以再追问一下,它们真是我们直观感受的那样么?它们到底是什么?

类型

计算机只能存储和处理代表0和1的电位序列,所以上面的数据类型无一例外的都被表示成了01序列,那01序列如何表示成以上各种不同类型呢 , 如何进行各种计算的呢

  • 整数是二进制(01序列)到十进制之间的映射
  • 字符是字符编码(01序列)与字符集之间的映射
  • 简单的布尔型就是01本身与真假之间的映射
  • 指针是二进制(01序列)到寄存器或内存地址之间的映射
  • 浮点数的01序列不同区段代表浮点数的不同部分

Tip: 浮点数的表达要复杂很多,得引入数据结构的概念,为了便于表达,各种组织约定指定长度的01序列中哪几位代表正负,哪几位代表指数,哪几位代表尾数,而这些信息组合在一起共同描述了一个浮点数 感兴趣可以参考 IEEE754 中单精度二进制浮点数的原理

其它的数据类型都是在此基础上组合而成

其实这里都遵循同一个思路,就是一串01序列,它代表的意义是什么完全是人为来指定的,不同的翻译(或映射方法)就会表达出不同意义,指定错了翻译方法,在人看来就是乱码或产生异常(而计算机很无辜,它都是听话在干活,它都是被动的,当然它也感受不到委屈)

加工

可以表达出数据远远不够,我们的目的是为了使用机器对它们进行计算(加工),那计算机是如何对一串01序列进行计算的呢

计算机可以通过电子(或晶体)二级管和三级管的组合对高低电位进行与、或、非的逻辑处理,而所有的加减乘除都可以转化为与、或、非的逻辑处理,其它的处理又可以转化为加减乘除的处理,如果可以将数据转化为高低电位一切就迎刃而解了,正好常见的数据都可以人为约定成01序列,01序列又可以转化为高低电位,这样一切就顺理成章了,计算机就是这样加工和处理数据的


有什么卵用

上面说了那么多有什么卵用? 根本感觉不到这些对生产有什么指导意义呀, 我只是为了进行一下科普么?

(感觉像是废话,因为你可能全都懂!!!)

绝对不是的,对事物的透彻认知有助于我们拨开浮云,直击本质,不必被那么多的概念弄得晕头转向(在写代码的过程中时刻都有着清晰的思路和方向)

冗述那么多我到底想说什么,我们得知道计算机其实有多么单纯,它只能干两件事:表达数据加工数据

带上这副眼镜,我们再来看看各种编程语言中的各种概念:

什么叫 数据结构 ? => 数据的约定与表达方式

什么叫 算法 ? => 数据的加工方法

什么叫 数据类型 ? => 数据的约定与表达方式

什么叫 变量 ? => 数据容身之所(其实是临时的),可以直接代表数据

什么叫 属性 ? => 数据

什么叫 传参 ? => 传递数据

什么叫 返回值 ? => 数据加工的结果,还是数据

什么叫 方法 ? => 数据的加工步骤

什么叫 函数 ? => 数据的加工步骤

什么叫 模块 ? => 打包好的数据和对数据的加工步骤

什么叫 面向对象 ? => 数据和对数据的加工方法打包在一起,通过数据加工的方式来完成数据传递

什么叫 面向过程 ? => 数据和对数据的加工方法糅合在一起,尝试描述整个流程,遍历每种可能的结果

太多了,无法穷举,但上面的例子已经可以看出一种思想,就是这些无非都是 数据加工方法 (也可以叫 算法 ) 的各种组合形式而已

给我们编写代码又有怎样的指导意义呢?

我们得分清哪些是待处理的数据,哪些是对这些数据的处理方法,尽要不要糅合在一起

输入(请求)是什么,要进行怎样的处理,输出(响应)是什么

与我们编写的程序进行交互的对象(可以是人也可能是另一个程序),会有怎样的请求或响应

两个处理过程中对接的数据是使用相同的表达方式么,是否有鸡同鸭讲的可能

可以将一些复杂的处理过程进行封装打包,以便整体调用,逻辑会更清晰

可以将一些会多处用到的处理过程进行封装打包,以方便反复调用

还有很多,都可以基于此两点进行不断生发,并且再也不必拘泥于一种语言了,其它语言都大同小异(具体就是数据表达和加工处理有方言上的区别而已,而方言这种东西更像是肌肉记忆,不是一两百个字可以讲清楚的)

Tip: 是不是感觉有点虚呀,没办法,思想,心法,内功都是这样的,只有用到时才会明白它的好用

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据
    • 类型
      • 加工
      • 有什么卵用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档