日更129天 - (翻译) C语言学习中的数学知识简要说明

有几个数学概念在编程中占有突出地位。这些概念都不涉及高等数学(甚至是代数,正如我们将看到的,懂太多代数会使某些编程范式变得相当混乱)。你不需要用深奥的数学知识来理解这些概念,但记住它们会让一些事情变得更有清晰。

整型和实数 Integers vs. real numbers

整数是一个没有小数部分的数字,是一个你可以用来计数的数字(尽管整数也可能是负数)。数学家可以区分自然数和基数,语言学家可以区分基数和序数,但这些区别在这里与我们无关。

就我们的目的而言,实数只是一个带有小数部分的数字。由于计算机通常不能准确地实现实数,因此区分有理数、无理数和超限数是没有必要的,甚至是没有意义的。

指数记数法 Exponential Notation

指数或科学记数法是将一个数字写成基数乘以10的某个幂的简单方法。
例如:
2,000,000 表示成 2x10^6
0.00023 表示成 2.3 x 10^-4
123.456 表示成 1.23456 x 10^2

二进制 Binary Number

我们通常把十进制数字中的各个数字称为位,而二进制数字的 "位 "通常被称为 "比特"。

我们熟悉的十进制数字系统是以10的幂为基础的。
123 就是 100 + 20 + 3
或者 1 x 10^2 + 2 x 10^1 + 3 x 10^0.

二进制数字系统是以2的幂为基础的。
100101 就是 1 x 2^5 + 0 x 2^4 + 0 x 2^3 + 1 x 2^2 + 0 x 2^1 + 1 x 2^0
也就是 32 + 4 + 1 = 37

八进制的45 就是 4x8^1 + 5x8^0 = 37
十六进制的25就是 2x16^1 + 5x16^0 = 37

布尔代数

布尔代数是一个代数系统(以研究它的数学家乔治-布尔命名),它只基于两个数字,0和1,通常被认为是 "假 "和 "真"。二进制数和布尔代数很自然地用于现代数字计算机,这些计算机处理的是开关和电流,要么是开要么是关。(事实上,二进制数和布尔代数不仅可以自然地用于现代数字计算机,而且是现代数字计算机的基本基础)。

在布尔代数中,有四个算术运算符。NOT非, AND与, OR或, 和EXCLUSIVE OR异或。

NOT需要一个操作数(即适用于一个单一的值)并对其进行否定。NOT 0是1,而NOT 1是0。

AND有两个操作数,如果它的操作数都是真的,则产生一个真值:1和1是1,但0和1是0,而0和0是0。

OR有两个操作数,如果其中一个操作数(或两个操作数)为真,则产生一个真值:0 OR 0是0,但0 OR 1是1,1 OR 1是1。

EXCLUSIVE OR,或XOR,需要两个操作数,如果其中一个操作数(而不是两个)为真,则产生一个真值:0 XOR 0为0,0 XOR 1为1,1 XOR 1为0。

也可以将0/1值的字符串并将布尔运算符平行地应用于所有这些值;这些有时被称为 "位操作"。例如,0011和0101的或运算是0111。


[日更128天 - (翻译) 编程是否需要数学(下)]https://www.jianshu.com/p/1b41c035f5a5)
日更127天 - (翻译) 编程是否需要数学 (上)
日更126天 - 知识付费是士力架还是人参果
日更125天 - 整理下自己的手机,别让它碎片化了我们的生活
日更124天 - 打造自己小环境
日更123天 - 杠杆
日更122天 - 收入的四个象限
日更121天 - 时光穿梭,回顾和展望
前日更120天索引

你可能感兴趣的:(日更129天 - (翻译) C语言学习中的数学知识简要说明)