科锐第一阶段第一节课笔记
进制转换:
1 2 3 4 5 . 6 7 8:
用10进制表示1 2 3 4 5 . 6 7 8 , 表达什么的数学意义了:
1*10000 + 2*1000 + 3*100+4*100+5*10 + 6*0.1 + 7*0.01 + 8*0.01
这是10进制表达方式:
2*1000 ==》1000为进制=》1*10^3。
如果是八进制就改为:
2*8^3
从右往左:
(位)
|
4 3 2 1 0 -1 -2 -3
1 2 3 4 5 . 6 7 8
在数学中:进制为底,位数为指数部分。
小数进制转换为10进制:
(1) 0.625使用减法换算:
0.625使用减法换算:0.101
0.5 0.25 0.125
-1 -2 -3
0 . 6 2 5
--------------------------------------------------------------------------------------------------------
0 . 6 2 5
_ 0 . 5
-
1 2 5 把0 .6 2 5与0.5比较,大小。大于补1,小于补0 =》0.1
把0.125与0.25比较,大小。大于补1,小于补0 =》0.10
0 . 1 2 5
_ 0 . 1 2 5
--------------------------------------------------------------------------------------------------------
把0.125与0.25比较,大小。大于或者等于补1,小于补0 =》0.101
(2)0.625使用乘法换算:
0.625使用乘法进行换算:0.101
0.625
X 2
--------------------------------------------
1 . 2 5 ====》拿走1
———————————————————————————————————————————————
0 . 2 5
X 2
--------------------------------------------
0. 5 ====》拿走0
—————————————————————————————————————————————
0. 5
X 2
--------------------------------------------
1 . 0 ====》拿走1 ,小数部分为0.乘法结束!
注意:10进制的小数以2的幂来累加的方式进行计算,可能无限接触到0.但是,不可能等于0.
小数精度的问题:
浮点数二进制与数学比较的时候:可能相等也可能不等。
缘由:浮点数转为二进制他可以无限循环,导致转不完!主要在精度的问题存在的差异。而导致结果不一样
注意:俩个二进制的浮点数,作比较的时候。注意精度问题!
//如果俩个二进制的浮点数作比较,要求精度为小数点后6位数
if((nNum01-nNum02=<0.0000001)||(nNum01-nNum02>=-0.0000001))
{
printf("nNum01的二进制大");
}else{
printf("nNum02的二进制小");
}
计算机运算:
注意:计算机只能做加法运算,不可以做其他的运算!其他的运算也是通过加法来计算。
-
计算机乘法:
计算机乘法原理 =》转换位运算的左移=》在进行加法计算
---》A 表示一个数
---》1010110Bq表示二进制
---》点缀为O,表示八进制
---》点缀xH,表示16进制
A x 1 0 1 0 1 1 0 0 B
= A x ( 1 x 10000000 + 1 x100000 + 1X1000 + 1x100)
= 10000000 A +100000 A+ 10000A + 100A
===>A向左移7位 + A向左移5位+ A向左移三位+A向左移2位
-
计算机除法:
计算机除法:
计算机除法原理 =》转换计算乘法=》在进行位运算(右移的问题)
条件:A=2^n
2^n
推倒:M= ------------
C
A 2^n 1 2^n
证明:M=---------- = A x -------- x ------------ = -----------------
C C 2^n C
====> AM 右移 n位
(1)2^n的值越大,精度越高。
(2)2^n的值越低,精度越低
- 位(bit)与 字节(Byte)与 字(Word)与双字(Dword)的关系:
位(bit):
bit(简写:b),是计算机数据存储最小的单位,二进制中,0或者1就是一个位(比特位)bit。
字节(Byte):
Byte(简写:B),是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位,也就是 :1Byte = 8bit = 1B = 8b。
计算机CPU的位数指的就是CPU一次能处理的最大位数,如32位计算机的CPU一次最多能处理32位数据。
PLC(编程逻辑控制器)中常用到的 字 Word 及双字 Dword 的关系
一个字占用2个字节 即
1 Word = 2 个字节 Byte = 16 位 bit
一个双字 Dword 等于2个 字 Word 即
1 DWord = 2个字 Word = 4 个字节 Byte = 32 位 bit
-
计算机减法:
=>计算机求补实际上是:计算机减法。
=> 条件十进制A ,B,neg(B)是补码 , ~B是反码,0XFF是B的补码; 0FF+1=0 x100(十六进制)
=> 证明: A - B求补= A+ neg(B)-100h
A - B = A + (100H - b) - 100H
B + ~B = 0 x FF ;
B + ~ B + 1 = 0 x FF + 1;
B + ~ B + 1 = 100H ;
~B + 1 = 100H - B
数学公式: 补集 = 全集 - 子集
列子:两位十进制求补:
58-36=58+(100-36)-100
=58+64-100
=22 -------->(把进位丢掉)
=12
-
计算机负数问题:
计算机负数问题==》就是给计算机补码。
补码的规则:
1byte=8位====>8 7 6 5 4 3 2 1
| |
最高有效位 最低位(一般,直说最高有效位)
0表示 +(正)
1表示 -(负)
注意:最高有效位为符号位,其他为符号位。
===》(1)如果符号位为正数,按原符号位存放
===》(2)如果符号位为负数,数据位求补后存放
-
补码的题目:
35:
-
10进制 =》2进制:100011 =》0010 0011=》23
-35:
-
10进制 =》2进制:100011 =》1101 1101=》DD
1Byte补码转为10进制真值:
68h:
-
16进制: + 1 1 0 1 0 0 0
=》 64 32 16 8 4 2 1
=》 8+64+32=104
=》 56
C7h:
=》16进制:1100 0111
=》取反+1:-011 1001
__ 0 1 1 1 0 0 1
=》 64 32 16 8 4 2 1
=》 - 32+8+1+16
=》 - 57
80h:
=》16进制:1000 0000
=》取反:-000 000 或者 -1000 0000 = -128
因为-0,没有什么意义。使用80h=-128.