php - "binary"数字与我的日常编程有什么关系?

标签 php python binary binary-data

我正在努力加深对整个编程的理解。我理解“二进制”的教科书定义,但我不明白的是它究竟如何应用于我的日常编程?

“二进制数”与 .. 好吧...“常规”数字的概念,尽管我尽了最大努力研究和理解这个概念,但我完全迷失了。

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

如果有人能为我指明良好、扎实的实用学习资源的方向,或在此处进行解释,我将不胜感激。

我不是在寻找“定义”(我现在已经阅读了维基百科页面几次),而是更多关于如何将新发现的二进制数确切知识融入其中的方向我的日常编程,如果有的话。这些天我主要用 PHP 编写,因此具体引用该语言会非常有帮助。

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

最佳答案

二叉树(您的标签之一),特别是 binary search trees , 对于一些日常编程场景(例如排序)很实用。

二进制数对于计算基础知识是必不可少的,但在高级语言中很少使用。

二进制数有助于理解边界,例如各种宽度的最大无符号数(例如 2^32 - 1 表示 32 位),或最大和最小有符号数 two's complement (通常使用的系统)。例如,为什么最小的带符号二进制补码 32 位数字是 -2^31 而最大的 2^31 - 1?乍看之下更奇怪的是,-(-2^31)(取最小数)会自行产生。 (提示,尝试使用 2 位数,因为分析是相同的)。

另一个是基本information theory .我需要多少位来表示 10000 种可能性(log2 10000,四舍五入)?它也适用于密码学,但您可能还没有深入了解。

不要指望每天都使用二进制,但出于这些和其他原因,一定要培养基本的理解。

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

关于php - "binary"数字与我的日常编程有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9041185/

相关文章:

javascript - 外部 javascript 未在 Laravel 5 中运行

php - 表数据行显示 0 而不是来自 mysql 的数据?

python - 阻止 Matplotlib Jupyter notebooks 显示带有动画的情节

assembly - 如何在 GDB 控制台中设置 "info registers"中的变量 rip?

objective-c - 如何通过查看 objective-c 中的 header 来提取 PNG 的宽度和高度?

python - 将int转换为具有可变字节长度的字节

php - Mikrotik - 使用无限循环的内部登录页面

Swift 中 PHP 的 call_user_func_array

python - 删除一些标签并重命名它们

python - Django:在计算查询结果时渲染模板。(AJAX)