三种基本的逻辑运算
* h, x5 j0 k1 i3 ?- Q% b& m1 C, h 逻辑运算有“或”、“与”和“非”三种。其它复杂的逻辑关系都可以由这三个基本逻辑关系组合而成。: F E# N% m2 O5 s9 d8 `
(1)逻辑“或”。用于表示逻辑“或”关系的运算,“或”运算符可用+,OR,∪或∨表示。) j/ z# J1 c! ^
逻辑“或”的运算规则如下:, j/ k) \$ p' w
0+0=0 0+1=1 1+0=1 1+1=1
0 l3 C3 M* E4 V3 [ N0 z e+ q8 q 即两个逻辑位进行“或”运算,只要有一个为“真”,逻辑运算的结果为“真”。$ [, Y! ^1 \, ~
例:如果A=1001111,B=(1011101);求 A+B
7 S* _ I! j, V# f+ p/ @5 p1 g 步骤如下: 1001111
/ s, w( p# a7 W$ B: ^1 w2 A8 |7 V k5 a + 1011101
! C8 o8 Q3 Y; Q; D; h# y) t 1011111: `3 X3 j+ m: I2 w3 Z5 ~) @
结果:A+B=1001111+1011101=1011111
1 G% L8 G2 _* X (2)逻辑“与”。用于表示逻辑与关系的运算,称为“与”运算,与运算符可用AND,·,×,∩或∧表示。8 b+ l( W9 ]/ j, M! t1 o& V" e
逻辑“与”的运算规则如下:
8 L7 U4 J$ @1 I1 R 0×0=0 0×1=0 1×0=0 1×1=19 y# K6 i0 ~& @& E7 ^ p2 z
即两个逻辑位进行“与”运算,只要有一个为“假”,逻辑运算的结果为“假”。1 K: I- V0 M! @6 o" O
例:如果A=1001111,B=(1011101),求A×B0 v8 j5 R9 q1 f" E" o* s& d
步骤如下: 1001111( m- g7 d7 i! w6 F
× 10111018 X) D. j0 I: Z
1001101
3 r7 V+ b9 a3 L3 g: y. Q. g 结果: A·B=1001111×101101=1001101% s6 Q) f* ~: T4 D) ~# t
(3)逻辑“非”。用于表示逻辑非关系的运算,该运算常在逻辑变量上加一横线表示。
) p0 X4 ~) c# H9 U7 z 逻辑“非”的运算规则: =0 =1 即对逻辑位求反。
' z2 q- a/ S, }& b2 K! b* M 2.3不同数制间的转换# Q; t9 M' ?6 w* O% r
不同数制间的转换采用基数乘除法
8 Z. M- ]; t2 O. C/ U; c' }; ? 基数乘除方法
2 O$ f- e! M; M4 U' S% j' K 假设将十进制数转换为R进制数:整数部分和小数部分须分别遵守不同的转换规则:5 X& \0 a$ B9 w3 g! x3 w5 M
对整数部分:除以R取余法,即整数部分不断除以R取余数,直到商为0为止,最先得到的余数为最低位,最后得到的余数为最高位。* F( M, {; v2 s; N _2 l; \9 ?. e7 m
对小数部分:乘R取整法,即小数部分不断乘以R取整数,直到小数为0或达到有效精度为止,最先得到的整数为最高位(最靠近小数点),最后得到的整数为最低位。% P4 e" _ E) U! j, K# \3 r
2.3.1十进制数转换为二进制数) [8 I3 k& a: d4 P1 V x/ s
十进制转换数成二进制数,基数为2,故对整数部分,除2取余,对小数部分乘2取整。为了将一个既有整数部分又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别转换,然后再组合。+ R/ v; D7 R, D2 ]% k2 S
例2-2 将(35.25)10转换成二进制数3 m7 ?1 H1 T4 _- J- H
整数部分:
7 R- k: ?$ L* V, l+ R% W 2) M2 g0 f3 v" l6 ?, p& {
2
, U7 A( S0 Y# M4 \ 2/ a2 Q1 G7 j- h6 x+ r5 I2 f1 X- H
2
/ ]4 H* {& y* b$ C1 D$ i9 [1 i 2
% Z, J+ o0 |$ G9 G+ d, R 2' Z: [+ I# p. E+ k5 R- k
2
! K3 G9 k; _' e' r @. R7 ]- C+ G$ N 35 取余数 低% H/ o2 j: L5 l# M, {
17: C6 F. f7 s0 n% ~ |
1
7 C8 ~- c) X3 N* R9 @ 1
) Q9 p6 o! k+ q: w6 z 0
) z f& i% p* Z2 `! j 01 e0 b9 x2 u9 U4 y* d
0
j% A6 F! R7 z; ^2 L 1 高
" O. V( Q1 z7 ^0 [& s, N& e0 d# s 8% U/ |2 O: y' U! h! a
4 k1 h* {% m- u, E) h; r
2
: H( G- E' F r' f 1+ N2 K. M9 r( D7 U
02 \: k" D/ T( C q$ S; Y/ }# x
注意:第一次得到的余数是二进制数的最低位,最后一次得到的余数是二进制数的最高位。也可用如下方式计算:
0 x) B' R$ A. b 商 : 0 1 2 4 8 17 35
% u i+ Y5 Z5 F' T/ b$ ` 2- f5 @+ ?- a. [6 x: `
余数 1 1 0 0 0 1
1 y) a( X1 B7 V0 }1 f% R* U# J 小数部分:
6 r8 o/ d% u+ E 0.25; b9 e# n8 w; l3 ~8 X2 P
× 2* d: f4 d3 q/ i# W7 W7 S
取整数 高/ y0 N# B' a3 `6 i* E1 C8 z- v
0
% I5 \5 n) g- ] b 0.50
; k3 N( O$ `4 S" m1 \% { × 23 ~: C+ K6 d6 w4 B/ }# Z
1. 00 1 低6 L# Q( ~; @ X% p+ ~4 y& t
注意:一个十进制小数不一定能完全准确地转换成二进制小数,这时可以根据精度要求只转换到小数点后某一位为止即可。将其整数部分和小数部分分别转换,然后组合起来得(35.25)10=(100011.01)2 |