前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >编程一样可以很带感--1+1不一定等于“2”

编程一样可以很带感--1+1不一定等于“2”

作者头像
一心一怿
发布于 2018-04-16 06:40:56
发布于 2018-04-16 06:40:56
9420
举报
文章被收录于专栏:take time, save timetake time, save time

刚玩了两把flash小游戏,我也不知道为什么我从小就喜欢玩这个东西,想当初我上大学选软件的目的就是为了学会做flash,那时目的单纯吧?哈哈,初中的时候看的showgood还有小小对我的震撼太大了,感觉这就是计算机,不过我也算实现了这个愿望,我大学的时候还是把AS学会了。

    好了,闲话不扯了,开始从入门开始写我脑子里的这一系列。当你从高中毕业之后,脑子里多少都会对学了很多年的数学语文,或是文科理科有些怀念,那时候想上大学就好了,上大学就能学我喜欢的理科,不用去学讨厌的语文,英语。但是到了大学才会发现,原来所谓的知识原来是不分科的,想单纯学某一类基本上很难做到。计算机亦是如此,计算机这门学科本身就包含了他自己的文科理科,至少我是这么认为的。像语言那一方面就很文科,很容易入手,需要的逻辑推理也不是那么深入,所以经常可以看到大学学文科学完之后到某某培训机构培训一下,出来依然可以编码,不要惊讶,因为单纯的编码是很容易的事情,所谓的C++,C,JAVA等等语言,只能说是你和计算机交流的一个工具,你想中国人交流需要用中国人听的懂的语言,和外国人交流就要说外国人交流的语言,和计算机交流当然就需要计算机能听的懂的语言。不过要是园内某位高人能弄出中文的编程语言,那对中国的计算机发展绝对是一个巨大的贡献(大家可以去搜一下“易”语言)。然后像计算机的四大基础课和算法就很像理科,需要你花时间去推敲,这些学起来都比较枯燥,不像语言,你写个程序,看个效果很有成就感,这些是计算机的内功,需要长时间的积淀。至于哪一方面比较重要,我想高中老师没有一次的提醒过,不要偏科,偏科也许你可以轻松排到全班前20,但是就很难进前10。而且在毕竟这是一个学科,这两方面是相辅相成的,理解哪一方面对另一方面都有不可替代的促进作用。

    我们从零开始,计算机说白了就是可以进行计算的机器,英文compute就是就是计算的意思,后面加个r表示名词,“可以计算的人(物体)”,扯到计算,从小到大我们都知道要计算就必须有数,数是构成计算的一个根本,所以计算机就是一个能瞬时处理大量数字的机器。高中学过,计算机是硅构成的,不知道有没有人想过是怎么个用硅构成法,另外我们在物理上还学过一个二极管的东西,正向能导电,反向不能导电,二极管的发明对计算机是有重大意义的。而计算机的思维方式就是建立在这个基本原件上面的。

     计算机是个很单纯的东西,单纯的只知道“好”和“坏”两种状态,在计算机的世界里说白了就认识两样东西,导电和不导电,最初的计算机是用大量的开关来给计算机编程的,也是就两个状态“开”和“关”,所以人们就用两个数字代替这两种状态,分别命名为“0”和“1”,于是计算机数学就是二进制的数学,所谓二进制就是"逢二进一“,在实际生活中我们是”逢十进一“,所以你需要忘掉现实世界的一个规则,来到虚拟世界。什么叫”逢二进一“,如果你叫你的计算机数数,那么它一定是这样数的,0,1,10,11,100……,相对于我们的数数方式0,1,2,3,4,5……我们要数到十才会在前面再写一个一。我们来比较一下我们可爱的计算机和可恶的我们的数数方法,前两个数是一样的,第三个,计算机的是10,我们的是2,如果我们从右往左看,最低一位是0,高一位是1,我们这里引入一个权重的概念,不要小看权重,在下一个文章里对这个权重的理解很重要,我们以从右往左依次标识2进制的位为第0位,第1位,……第n位,如果这个二进制数有n+1个数字构成的话,这里要注意,我们是从0开始的,不是从1开始的。下面说到每一位的权重,每一位的权重就是2的n次方,也就是说第0位的权重是2的0次方,也就是1,第1位是权重是2的1次方,也就是2,第n位就是2的n次方,这个数会有多大,那个老掉牙的国王在棋盘里放米粒的故事在高中某一章数学书的前言里就有,至少我那个年代的数学书里就有。我们来进行二进制到十进制的换算,我们将每一位的数字乘以该位的权,比如说10,我们用0乘以它的权1,1乘以它的权2的一次方,得到十进制的数字2,依次类推。

    十进制怎么转换成二进制呢?有一种方法,叫做短除法,很简单,中国人学了这么久,套公式的能力绝对是世界上最强的,什么是短除法?就是将一个十进制的数不停的除以二除到全部除尽或者商为一为止,举个例子,比如说25,除以2,余1得商为12,再拿这个12除以2,余0商6,再拿这个6除以2,余0商3,再拿3除,余1商1,不能再除了,要打住了,我们看到余数依次是1、0、0、1、1,有的人很聪明,他把这个二进制数反过来化成十进制,他说你坑爹呢?这个二进制数化成十进制数是19,不是25,所以这里要记住了,我们需要反过来,也就是说我们要把最后得到的商写在第一位,然后再是最后一次的余数,倒数第二次的余数,也就是11001,再算一下绝对是25,如果你有兴趣,可以研究一下为什么这个算法的是这样的原因。

    当人们发明了二进制之后,人们发现了一个事情,这也太麻烦了,这纸也不够长啊,一个四位数的十进制数,我就要写十多位的0和1的二进制数,人们为了方便标记,于是一般用十六进制的数标记二进制的数,也就是逢十六进一,有人问了那9以后的怎么表示,9到15分别用字母A,B,C,D,E,F表示,比如说一个数FF那就代表255,怎么算的,参考二进制的权重,十六进制的权重是16的n次方,参考二进制的方法就能化成十进制数,那二进制和十六进制怎么转换呢?最简单的一个办法,以四个二进制数位一组,没有四个的就在前面补上0,举个例子我们找一个二进制的数10001,这个数化成十进制是17,我们四个四个一组的意思就是从右边开始0001这四个数是一组,然后还剩下一个最高位的1,我们在前面补上三个0,就是0001,和后面一样,我们分别把这两组数化成十六进制,第一组化成十进制是1,十六进制也是1,第二组一样,所以这个二进制数化成十六进制就是11,按照权重的算法算成十进制还是17,证明这个方法没有错,至于为什么,可以用数学证明证出来,我很想把这些证明贴出来,可以我手机像素不够,写在纸上照成图片看不清楚。那十六进制化成二进制应该很容易了吧?

    好了,在说了最基本的进制问题后,你会发现在计算机的世界里,1+1不是等于”2“的,它等于10这个值,所以说虚拟和现实是不一样的,虽然这篇文章很弱智,但是作为计算机基础来说,他是必须要知道的,后面的很多东西都要赖以这些知识生存,当开始了解编码的时候,也许你就会觉得这些无聊的进制其实并不是看上去那么肤浅的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】软考中级-软件设计师 003-计算机系统知识(进制转换)
进制转换是将一个数字从一种进制表示转换为另一种进制表示的过程。在数学和计算机科学中,我们经常使用不同的进制系统来表示整数和小数。常见的进制系统包括二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制(基数为16)。
愚公搬代码
2024/01/14
1620
各种进位制转换_二进位制与十进位制之间的转换
在数字后面加上不同的字母来表示不同的进位制。B(Binary)表示二进制,O(Octal)表示八进制,D(Decimal)或不加表示十进制,H(Hexadecimal)表示十六进制。
全栈程序员站长
2022/09/21
1.4K0
各种进位制转换_二进位制与十进位制之间的转换
二、八、十、十六进制转换(图解篇)「建议收藏」
  之前使用SQL把十进制的整数转换为三十六进制,SQL代码请参考:SQL Server 进制转换函数,其实它是基于二、八、十、十六进制转换的计算公式的,进制之间的转换是很基础的知识,但是我发现网络上没有一篇能把它说的清晰、简单、易懂的文章,所以我才写这篇文章的念头,希望能让你再也不用担心、害怕进制之间的转换了。
全栈程序员站长
2022/09/20
3.9K0
二、八、十、十六进制转换(图解篇)「建议收藏」
【进制转换】《进制大乱斗,谁才是真正的赢家!》
进制转换是计算机科学中的基础概念,也是编程和数字逻辑设计中的重要内容。掌握进制转换对于理解计算机内部运算机制、进行硬件设计和编写高效代码至关重要。本文将详细介绍各种进制及其相互转换方法。
LuckiBit
2024/12/11
1660
深入理解计算机系统(2.2)------进制间的转换原理
IT可乐
2018/01/04
1.7K0
深入理解计算机系统(2.2)------进制间的转换原理
八、十六进制数转换到十进制数
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
用户7886150
2021/02/06
2.4K0
「计算机基础」你可能知道二、八、十六进制,但原、补、反码也知道吗
在生活中,我们通常都是使用阿拉伯数字计数的,也就是10进制,以10为单位,遇10进一,所以是由0,1,2、3、4、5、6、7、8、9这个10个数字组成的;而在计算机中,计算机是无法识别10进制数的,它只能识别0和1,也就是二进制,由0、1两位数字组成,其运算规则是逢二进一。
老夫编程说
2020/04/25
2.5K0
「计算机基础」你可能知道二、八、十六进制,但原、补、反码也知道吗
C语言十进制与二进制的相互转换
计算机只认识二进制数(0和1),因为计算机是机器,它由逻辑电路组成,而逻辑电路一般情况下有两种状态,这两种状态分别是开关的闭合和断开,逻辑电路的这两种状态刚好就对应了二进制的 "1" 和 "0” 。常见的进制数有二进制、八进制、十进制、十六进制。在不同的进制之间还可以相互转换,如:二进制转十进制,十进制转二进制等等。今天我来给大家分享如何运用C语言编写代码来实现进制数之间的互相转换。
程序员小顺
2021/10/13
2.4K0
计算机常用的数制及编码
我们习惯使用的十进制数是由0、1、2、3、4、5、6、7、8、9十个不同的符号组成,每一个符号处于十进制数中不同的位置时,它所代表的实际数值是不一样的。例如1999年可表示成
用户9184480
2024/12/17
1530
多进制转换,你学会了么?
同伴,不一定非要一起走到最后,某一段路上,对方给自己带来的朗朗笑声,那就已经足够。 八月长安—《你好,旧时光》
小Bob来啦
2020/12/16
1.1K0
多进制转换,你学会了么?
计算机基础(2)——进制与进制转换
进制也就是进位计数制,是人为定义的带进位的计数方法。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
绿水长流z
2025/01/03
1420
计算机基础(2)——进制与进制转换
二进制,八进制,十进制,十六进制数之间的转换方式
我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。
岳泽以
2022/10/26
1.8K0
二进制,八进制,十进制,十六进制数之间的转换方式
深入理解计算机系统cp1:存储单位、数制、编码
PS:数据传输大多以 bit 为单位,比如我们常说的网速100M/s,M/s其实Mbit/s,也就是兆比特每秒,我们还可以写成100Mbps。
Chor
2019/11/07
1.5K0
【JavaSE专栏25】进制转换的那些事,十进制转R进制、R进制转十进制是什么操作?
本文对 Java 中的进制转换流程进行了介绍,讲解了十进制转R进制、R进制转十进制的操作过程,并给出了样例代码。
Designer 小郑
2023/08/02
3590
【JavaSE专栏25】进制转换的那些事,十进制转R进制、R进制转十进制是什么操作?
计算机各种进制之间的转换,外行人也能看的懂
https://baike.baidu.com/item/%E6%95%B0%E5%80%BC的方法。按进位的方法进行计数,称为进位计数制。在计算机中采用的是主要是二进制,此外还有八进制、十进制、十六进制的表示方法。在日常生活中,我们最常用的是十进位计数制,即按照逢十进一的原则进行计数的。
跟着飞哥学编程
2022/11/30
4K0
计算机各种进制之间的转换,外行人也能看的懂
[C语言]C语言基础知识概述
进制就是进位制,是人们规定的一种进位方法。对于任何一种进制—X进制就表示某一位置上的数运算时是逢X进一位。十进制就是逢十进一,十六进制是逢十六进一,二进制是逢二进一。
IT编程爱好者
2023/04/12
9650
[C语言]C语言基础知识概述
二进制8进制10进制16进制代码_不同进制之间的转换
数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010… 的数字 ;
全栈程序员站长
2022/11/08
2.5K0
重学计算机组成原理(十)- "烫烫烫"乱码的由来
万物在计算机里都是0和1,搞清楚各种数据在二进制层面是怎么表示的,是我们的必修课。
JavaEdge
2019/08/18
9770
重学计算机组成原理(十)- "烫烫烫"乱码的由来
进制之间的转换
今天翻了一本计算机基础的书籍,其中十进制、二进制、八进制、十六进制之间的转换挺有意思的,也容易犯糊涂,特温故而知新。 十进制数制系统 十进制数制系统包括 10 个数字:0、1、2、3、4、5、6、7、8、9 基为:10 逢十进一,如3+7=10,20+80=100 二进制数制系统 计算机中使用二进制表示数据 二进制包括两个符号:0和1 二进制逢二进一:(1+1)2=(10)2 二进制的基为2 示例:1000101100101101 八进制数制系统 用于缩短二进制的数字长度
猿人谷
2018/01/17
1K0
进制之间的转换
【Java】基础01:什么是二进制?
提问:9+1=? 相信看到这个问题的人脑海里都会很自然地得出一个答案:9+1=10 而这其中运用到的运算就是十进制 那么问题来了:什么是十进制? 1.十进制 个位数9加1变成了十,就会向十位数进一位变成10 每一位置上的数运算都是逢十进一位就是十进制 在十进制中,只有数字0~9两个数,逢十进一 故:9+1=10 这也是我们人类现实生活中所采用的进制 明白了十进制也就能理解二进制 2.二进制 计算机所使用的是二进制 因为二进制运算更快(数字只有0和1更简单) 每一位置上的数运算时都是逢二进一位的就是二进制 在
刘小爱
2020/07/29
5270
推荐阅读
相关推荐
【愚公系列】软考中级-软件设计师 003-计算机系统知识(进制转换)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文