摘抄自《程序员的数学》 作者:结城浩
本篇主要介绍一些程序员用得上的数学概念。
计数
十进制数的构成:2503=2x103+5x102+0x101+3x100
十进制数的构成:1100=1x23+1x22+0x21+0x20=4+8+0+0=12
※100=1
十进制转二进制的代码:
static double ChangeIntoBinary(int decimalism)
{
int tempNum = decimalism;
int remainder;
double binary = default;
int i = 0;
do
{
remainder = tempNum % 2;//获得余数
tempNum /= 2;//每次循环结果除于2
if (remainder == 1) { binary += remainder * Math.Pow(10, i); }
//如果余数不为0,则结果为1*10的i次方的累加
i++;
} while (tempNum != 0);//当结果为0不能再被2整除时结束循环,另1/2=0余1。
return binary;
}
为什么100=1?
103=1000
102=100
101=10
100=?
观察得每减少一次方,下方的数则为上方的数的1/10。
同样可知道10-1=1/10
逻辑:
1.非 :¬A,¬¬A=A(双重否定等于肯定)
2.与:A∧B
3.或:A∨B
4.异或:A⊕B(非A即B)
5.相等:A=B
6.蕴含:A⇒B(不是A,或者是B)
德·摩根定律:
(¬A)∨(¬B)=¬(A∧B)
(¬A)∧(¬B)=¬(A∨B)
代码版
(!A)||(!B)=!(A&&B)
(!A)&&(!B)=!(A||B)
复杂的逻辑运算可以用卡诺图简化
以上,希望对大家学习有帮助。