十进制转二进制(小数部分) 十进制:0.25转二进制过程(每一次乘2,那么整数部分) ① 0.25 * 2 = 0.5 -> 0 ② 0.5 * 2 = 1.0 -> 1 ∴ 十进制数0.25的二进制数为0.01 二进制数:101.101转十进制 位数(每个位置的数) 1 0 1 . 1 0 1 2^2 2^1 2^0 . 2^(-1) 2^(-2) 2^(-3) 位值(每个位置的权值) 4 2 1 . 0.5 0.25 0.125 4*1 + 2*0 + 1*1 + (.) + 0.5*1 + 0*0.25 + 1*0.125 = 十进制数 2^(-1) = 1 / 2^1 = 1 / 2 = 0.5 2^(-2) = 1 / 2^2 = 1 / 4 = 0.25 |
前、中、后缀表达式: 1. 中缀表达式转换为其他两种 方法: 首先按照运算符的优先级对所有的运算单位加括号 转前缀则将符号移动到对应括号之前 转后缀则将符号移动到对应括号之后 转换过程 中缀表达式为:a + b * c - ( d + e ) 使用按照运算符的优先级对所有的运算单位加括号 操作完成后式子变成: ( ( a + ( b * c ) ) - ( d + e ) ) 中缀表达式转前缀表达式: 1)将运算符移动到对应括号之前:- ( + ( a * ( b c ) ) + ( d e ) ) 2)去掉括号:- + a * b c + d e 3)转换完成 中缀表达式转后缀表达式:
|
2. 前缀表达式转中缀表达式 方法: 从后向前遍历前缀表达式,如果遇到运算符,将其与后面两个操作数相结合,并在外层加上括号,当做一个新的运算符。 遍历完成后,将运算符移动到括号内的操作数中间。 去掉不影响运算的括号。 转换 前缀表达式为:- + a * b c + d e 从后向前遍历遇到运算符,与后面两个结合,外层套括号,当做新的运算符。操作完成后,表达式变为:( - ( + a ( * b c ) ) ( + d e ) ) 将运算符移动到括号内操作数中间,操作完成后,表达式变为:( ( a + ( b * c ) ) - ( d + e ) ) 去掉多余括号后,表达式变为:a + b * c - ( d + e) |
3. 后缀表达式转中缀表达式 方法: 从前向后遍历后缀表达式,如果遇到运算符,将其与前面两个操作数相结合,并在外层加上括号,当做一个新的运算符。 遍历完成后,将运算符移动到括号内的操作数中间。 去掉不影响运算的括号。 转换 后缀表达式为:a b c * + d e + - 从前向后遍历遇到运算符,与前面两个结合,外层套括号,当做新的运算符。操作完成后,表达式变为:( ( a ( b c * ) + ) ( d e + ) - ) 将运算符移动到括号内操作数中间,操作完成后,表达式变为:( ( a + ( b * c ) ) - ( d + e ) ) 去掉多余括号后,表达式变为:a + b * c - ( d + e) |