Php “怎么做?”;“二进制”;数字与我的日常编程有关吗?

Php “怎么做?”;“二进制”;数字与我的日常编程有关吗?,php,python,binary,binary-data,Php,Python,Binary,Binary Data,我正努力从整体上加深对编程的理解。我理解教科书中“二进制”的定义,但我不明白的是它到底是如何应用于我的日常编程的 “二进制数”的概念与。。好。。。尽管我尽了最大的努力去研究和理解这个概念,“常规”数字,但我完全不知道 我最初是通过在早期DOS Basic和C中构建愚蠢的小冒险游戏来自学编程的,现在我用PHP、JavaScript、Rails和其他“web”语言完成了大部分(呃,全部)工作。我发现这些逻辑中有很多都是用这些更高级的语言抽象出来的,以至于我最终觉得我缺少了很多我需要的工具来继续改进和

我正努力从整体上加深对编程的理解。我理解教科书中“二进制”的定义,但我不明白的是它到底是如何应用于我的日常编程的

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

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

如果有人能为我指出一个好的、可靠的实用学习资源的方向,或者在这里解释一下,我将不胜感激

我不是在寻找“定义”(我现在已经在维基百科页面上读了几遍),而是更多地了解如何将这些新发现的关于二进制数到底是什么的知识整合到我的日常编程中(如果有的话)。这些天我主要是用PHP写的,所以特别提到这种语言会非常有帮助

编辑:如前所述。。二进制是一个数字的表示,而不是一个完全不同的系统。。因此,为了修正我的问题,使用二进制数字表示法而不仅仅是。。。数字

二叉树(您的标记之一)尤其适用于一些日常编程场景(例如排序)

二进制数是计算基础的基本要素,但在高级语言中很少使用

二进制数有助于理解边界,例如各种宽度的最大无符号数(例如,32位为2^32-1),或(通常使用的系统)的最大和最小有符号数。例如,为什么最小的有符号二的补码是32位数字-2^31,而最大的是2^31-1?乍一看,甚至更奇怪的是,-2^31(否定最小的数字),也会屈服。(提示,使用2位数字进行尝试,因为分析是相同的)

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

不要期望每天都使用二进制文件,但一定要对这些和其他原因有一个基本的了解


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

更多的是经验,而不是可靠的答案:

事实上,您实际上并不需要二进制,因为它在当今的编程中非常抽象(取决于您的编程内容)。二进制在系统设计和网络中有更多的用途

我在学校的同事在他们的专业中做了一些事情:

  • 处理器指令集和操作(操作码)
  • 网络和数据传输
  • 黑客攻击(特别是内存“篡改”。更多的是十六进制,但仍然相关)
  • 内存分配(在汇编中,我们使用十六进制,但有时使用二进制)

你需要知道这些“正则数”是如何被机器表示和理解的——因此所有这些“转换课程”如十六进制到二进制、二进制到八进制等。机器只读二进制。

作为一个网络爱好者,你无疑理解unicode的重要性。查看系统不支持的字符集时,Unicode以十六进制格式表示。十六进制也出现在RGB值和内存地址中。在许多事情中,Hexideciaml是写出长二进制字符的缩写

最后,二进制数作为真实性的基础:1为真,而0始终为假

去看一本关于数字基础的书,试试布尔逻辑。你再也不会以同样的方式看待a而不是b或c了

二进制(与常规)数字有两种用法

因为单词regular,可能不是:

  • 二进制存储为压缩字节,例如,整数为4字节,双精度为8B。是SQL
    INT
    还是
    DOUBLE
    。常规存储为文本,字节/位。SQL
    VARCHAR
但就我们而言:

  • 以不同的编号基数表示:101二进制=1*4+0*2+1*1=5
这适用于是/否状态的复杂编码:

给定
1 | x=1
0 | x=x
(或二进制+)和
0&x=0
1&x=x
(和二进制*)


下面是一段简短的历史,以帮助您理解,我将在最后回答您的问题

二进制有点奇怪,因为我们太习惯使用10进制了。这是因为人类有10个手指,当他们用完时,他们必须用一根棍子、脚趾或其他东西来代表10个手指。但并非所有文化都是如此,一些狩猎采集人口(如澳大利亚土著人)使用基数为5的数字系统(一只手),因为不需要产生大量的数字

无论如何,基2在计算中很重要的原因是因为一个电路可以有两种状态,低电压和高电压;把它想象成一个开关(开和关)。将其中8个开关放在一起,就有1个字节(8位)。考虑位的最佳方式是1=on和0=off,这正是它在二进制中的表示方式。然后你可能会有像10011100这样的东西,其中1是高电压,0是低电压。在早期的计算机中,使用了物理开关,操作员可以打开和关闭这些开关来创建程序
$sex_male = 0:
$sex_female = 1;
$employee_no = 0*2;
$employee_yes = 1*2;
$has_no_email = 0*4;
$has_email = 1*4;

$code = $sex_female | $employee_no | $has_email;

if (($code & $sex_female) != 0) print "female";