"二进制"数字与我的日常编程有何关系?

Jon*_*Coe 6 php python binary binary-data

我正在努力发展对整个编程的深刻理解.我理解教科书对"二进制"的定义,但我不明白的是它究竟是如何适用于我的日常编程的?

尽管我最好地尝试研究和理解这个概念,但"二进制数"与......以及"常规"数字的概念完全失去了.

我是一个最初通过在早期的DOS Basic和C中构建愚蠢的小冒险游戏来自学编程的人,现在我用PHP,JavaScript,Rails和其他"网络"语言完成了大部分(呃,所有)我的工作.我发现这些逻辑中的大部分是用这些更高级别的语言抽象出来的,我最终觉得我缺少许多继续进步和编写更好代码所需的工具.

如果有人能指出我在一个良好,可靠的实践学习资源的方向,或在这里解释它,它将受到大力赞赏.

我并不是在寻找"定义"(我现在已经阅读了几次维基百科页面),但更多的方向是如何将这些新发现的知识完全包含在我的日子中的二进制数字中.一天编程,如果有的话.我这些天主要用PHP编写,因此对该语言的引用将非常有用.

编辑:正如所指出的那样..二进制是一个数字的表示,而不是一个完全不同的系统.所以为了修改我的问题,使用数字的二进制表示而不仅仅是...数字有什么好处(如果有的话).

Mat*_*hen 11

二叉树(您的标签之一),特别是二叉搜索树,对于某些日常编程场景(例如排序)是实用的.

二进制数对于计算基础知识至关重要,但在高级语言中更少使用.

二进制数对于理解边界很有用,例如各种宽度的最大无符号数(例如32位的2 ^ 32-1),或者二进制补码的最大和最小有符号数(通常使用的系统).例如,为什么最小的有符号二进制补码32位数-2 ^ 31但最大2 ^ 31 - 1?乍看之下甚至更奇怪, - ( - 2 ^ 31)(否定最小数字)产生自己.(提示,请尝试使用2位数字,因为分析是相同的).

另一个是基本信息理论.我需要多少位才能代表10000种可能性(log 2 10000,四舍五入)?它也适用于密码学,但你可能还没有进入那么多.

不要指望每天使用二进制文件,但是要对这些和其他原因进行基本的理解.

如果您探索pack和按位运算符,您可能会发现其他用途.特别是,许多程序员不知道何时可以使用XOR(可以通过查看涉及两个二进制数字的真值表来理解).

  • 嗯......我一直在学习二元树,但仍然不明白我每天都会"使用"它们.我的一个朋友提到他如何使用数据库作为"二叉树",其中包括指向其他​​地方的静态/缓存数据的指针.我认为我的困惑是部分提出的,试图弄清楚到底是什么意思;)IE:是一个二叉树数据"类型"或实际上只是一个数据"概念".谢谢你的评论!我想为了变得更聪明,首先我必须让自己感到完全愚蠢. (3认同)