Shell——数学运算


1)let操作符

使用let命令可以执行基本的整数算数操作,let命令的使用须遵循以下几点:

  • 只支持整数运算
  • 使用let,变量名之前不需要加$符号
  • 运算符号两侧不能有空格
  • 需要有变量接收let的结果
  • let支持基本的运算准则:先乘除后加减,括号里的先运算

格式:let res=x+y,x和y需是已被赋值的变量,并且变量需为整数,res用于接收x+y的结果。


自加(++)、自减(- -)操作

自加(++)和自减(- -)会改变变量的值。

自加格式:let x++,let与变量间有空格,变量与++直接不能有空格。

自减格式:let x--,书写规范同理。

[wjj@learning ~]$ x=1
[wjj@learning ~]$ echo $x
1
[wjj@learning ~]$ let x++
[wjj@learning ~]$ echo $x
[wjj@learning ~]$ let x--
[wjj@learning ~]$ echo $x
1

前置++与后置++

C语言中前置++,与后置++有明显的区别:

  • 前置++:先++,再执行
  • 后置++:先执行,最后++

因为Shell是由C语言开发出来的,Shell中的前置++与后置++同样遵循上述原则

例1:

x=1 y=1
let z=(x++)+y;echo "z=$z x=$x y=$y"
z=2 x=2 y=1
  • 显然,后置++的运算优先级较低
  • 如果运算中有++操作,需要用括号括起来
  • 因为是后置++,所以先执行z=x+y,最后再执行x++

例2:

x=1 y=1
let z=(++x)+y;echo "z=$z x=$x y=$y"
z=3 x=2 y=1
  • 前置++优先级较高
  • 先执行++x,再执行x+y

**注意:**自加与自减操作只适用于计算参数x y,不适用于接收let命令的z


+=、-=、*=和/=

Shell中+=-=操作符与C语言中一致:

let x+=y等同于let x=x+y

let x-=y等同于let x=x-y

let x*=y等同于let x=x*y

let x/=y等同于let x=x/y

2)(( ))操作符

(( ))与let一样,支持基本的整数算数操作,需遵循以下几点:

  • 只支持整数运算
  • 运算写在最内层括号中
  • 运算符号两边可以有空格
  • 可以用变量接收结果,也可以不接收
  • 支持逻辑运算

例1:

echo $((1 + 1))
2
echo $((z = 1 + 1))
2
echo $z
2
  • 括号内的书写规范允许有空格
  • 可以用$提取运算后的结果

例2:

x=1 y=1
echo $((z=(x++)+y))
2
echo $((z += 1))
3
  • 前置++、后置++、+=和-=同样适用

3)[ ] 操作符

[ ]操作符的使用方法与前二者大致一样,遵循:

  • 只支持整数运算
  • []中可以使用$前缀,也可以不使用$访问变量
  • 支持逻辑运算

例1:

echo $[1 + 2]
3
x=$[1 + 2]; echo $x
3
  • [ ]中允许有空格
  • 可以不用变量接收其计算结果

例2:

y=1
x=$[$y + 1]; echo $x
2
  • []中允许访问变量,变量名前需加符号$

例3:

y=1
x=$[$y + ((1+2))]; echo $x
4
x=$(( $y + $[1+2])); echo $x
4
  • []中允许访问变量,变量名前需加符号$
  • [](())和相互嵌套使用

4)逻辑判断

Shell中兼容C语言中的逻辑判断,以下符号当在运算中出现时,表示逻辑判断

符号说明
||或|逻辑或
&&或&逻辑且
>=大于等于
<=小于等于
!=不等于
==等于判断

当逻辑判断成立时,返回1(true);条件不成立时,返回0(false)。

(())[]中同样支持逻辑运算:

a=$[1 > 2 && 1 < 3];echo $a
0
b=$((1 < 2 || 1 > 3));echo $b
1

5)expr工具

expr工具同样可以用于基本的算数操作,当然也仅限于整数操作

  • 使用expr运算必须加空格
  • expr支持逻辑运算

例1:

a=`expr 1 + 2`
a=$(expr $a + 1)
  • expr每个变量和运算符直接必须有空格

例2:

a=`expr 1 > 2`; echo $a
0
  • expr同样支持逻辑运算

6)bc工具

bc是一个用于数学运算的高级实用工具,这个精密的计算包含了大量的选项。可以借助它执行浮点数运算并使用一些高级函数。

例1:浮点数计算

echo "4 * 0.5" | bc
2.0

x=10
y=`echo "$x * 0.5" | bc`
echo $x
5.0

bc可以接收操作控制前缀,前缀之间以分号间隔。

例2:设置小数精度

echo "scale=2; 10 / 2 " | bc
5.00

通过参数scale=2将小数位数设为2,因此打印结果保留2位小数。

bc可以实现不同进制的转换功能

例3:进制转换

n=10
#二进制
echo "obase=2;$n" | bc
1010
#八进制
echo "obase=8;$n" | bc
12
#十六进制
echo "obase=16;$n" | bc
A

上述代码演示了十进制数字转换成二进制、八进制和十六进制。

其中obase是输出控制,用来控制输出内容是几进制的;此外,ibase是输入控制,用于控制输入数字的进制

n=1010
#二进制转换成十进制
echo "obase=10;ibase=2;$n" | bc

**注意:ibase需要设置在变量之前!**以下写法都是正确的:

  • echo "obase=10;ibase=2;$n" | bc
  • echo "ibase=2;$n;obase=10;" | bc

根据计算机读取命令的特性,这样可以保证计算机在读取变量时,第一时间找到ibase输入控制,否则将默认以十进制进行存储。

例4:计算平方及平方根

echo "sqrt(100)" | bc
10
echo "2^3" | bc
8

bc中还有丰富的数学函数库,通过--mathlib-l选项使用这些高级函数。

例5:正弦与余弦

#正弦
echo "s(3.1415926/2)" | bc --mathlib
.99999999999999964101
#余弦
echo "c(0)" | bc --mathlib
1.00000000000000000000

bc还可以对文件进行操作

例6:完成文件中的计算

cat > bctest.bc << "EOF"
sqrt($a)
2^3
EOF
cat bctest.bc | bc --mathlib
10.00000000000000000000
8

注意:该方法是把文件通过管道传给bc,因此无法在文件中使用变量,例如:sqrt($a)是无法被识别的。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第1篇 Linux下C语言基础 第1章 Linux简介 1.1 GNU简介 1.2 Linux简介 1.2.1 Linux发展史 1.2.2 Linux发行版 1.2.3 Linux内核版本 1.2.4 Linux与UNIX的关系 1.2.5 Linux服务器方面的发展 1.2.6 Linux在嵌入式系统方面的发展 1.2.7 Linux在桌面系统方面的发展 1.3 Linux环境下的其他编程语言 1.3.1 C++ 1.3.2 Java 1.3.3 Perl 1.3.4 Python 1.3.5 Ruby 1.3.6 PHP 第2章 控制结构 2.1 goto语句 2.1.1 C语言中的无条件跳转 2.1.2 使用goto语句进行出错处理 2.1.3 出错处理的一般模型 2.2 C语言中的分支结构 2.2.1 分支结构的翻译 2.2.2 使用goto语句实现分支结构 2.3 短路计算 2.3.1 短路计算 2.3.2 &&运算的短路计算 2.3.3 ||运算的短路计算 2.4 C语言中的循环结构 2.4.1 while循环 2.4.2 do…while循环 2.4.3 for循环 2.5 switch语句 2.5.1 switch语句的应用 2.5.2 使用goto语句实现switch语句 2.6 优化控制结构 2.6.1 表达式优化——使用替换程序中的乘除法 2.6.2  表达式优化——常量折叠 2.6.3 表达式优化——使用数学公式 2.6.4 表达式优化——存储问题 2.6.5 分支优化——改变判断顺序 2.6.6 分支优化——使用switch语句 2.6.7 循环优化——一次性计算 第3章 C语言中的函数 3.1 函数的本质 3.2 变量的作用域和生命期 3.2.1 全局变量 3.2.2 局部变量 3.3 变量的初始值 3.3.1 全局变量的初始值 3.3.2 局部变量的初始值 3.4 与函数有关的优化 3.4.1 函数调用与程序优化 3.4.2 变量存储优化 3.5 编写多文件程序——变量的存储类别 3.5.1 存储类别 3.5.2 static变量的作用——改变变量的生命期 3.5.3 static变量的作用——实现封装和模块化设计 3.6 编写多文件的程序——链接的作用 3.6.1 链接多个文件 3.6.2 链接时符号解析规则 3.6.3 链接规则的应用 3.7 可变参数 3.7.1 可变参数的概念 3.7.2 实现一个简单的可变参数的函数 3.7.3 可变参数实例 3.7.4 关于printf函数的疑问——缺少整型参数 3.7.5 关于printf函数的疑问——缺少字符串地址参数 第4章 C语言中的指针与字符串 4.1 sizeof运算符 4.1.1 sizeof运算符的应用——得到内置类型的大小 4.1.2 sizeof运算符的应用——得到复合类型的大小 4.2 指针的应用 4.2.1 指针与别名陷阱 4.2.2 数组的指针 4.2.3 指针的指针 4.2.4 指针与参数传递 4.2.5 指针类型的意义 4.2.6 void*型指针 4.3 函数的指针 4.3.1 C语言中的函数指针 4.3.2 函数指针的应用——回调函数 4.3.3 函数指针数组 4.4 字符串 4.4.1 字符串与字符数组 4.4.2 字符串与指针 4.4.3 限定修饰符const 4.4.4 const关键字修饰指针——在指针定义之前 4.4.5 const关键字修饰指针——在指针定义之中 4.4.6 const关键字修饰指针——在指针定义之前和定义之中 4.4.7 使用const关键字的意义 第5章 C语言的高级技术 第2篇 C语言开发环境 第6章 vi与vim编辑器 第7章 gcc编译器 第8章 makefile 第9章 gdb 第3篇 Linux进程操作 第10章 进程环境 第11章 进程控制 第12章 时间和日历历程 第13章 信号及信号处理 第14章 进程间通信 第15章 线程 第4篇 Linux文件操作 第17章 文件I/O 第18章 文件管理 第19章 目录操作 第20章 特殊文件 第21章 基于流的I/O 第5篇 Linux网络编程 第22章 TCP和UDP协议 第23章 网络编程基础 第24章 网络编程进阶 第25章 网络编程实例——实现文件传输程序 第26章 网络编程实例——简单的Web服务器 第6篇 shell脚本知识 第27章 shell脚本基础 第28章 shell脚本中的控制结构 844
2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。2积分福利。 涵盖广泛 精炼的理论讲述搭配大量经典算法示例,学习查询兼而有之。 阐述到位 算法思想、算法实现和完整示例合理搭配,相辅相成。 示例完善 示例分析精准,代码注释精确,每段代码皆可通过编译执行。 计算机技术的发展和普及不仅改变了人们的生活和娱乐方式,也改变了人们的工作方式,这其中最为重要的便是计算机编程技术。现代的设计任务大多通过代码编程交给计算机来完成,其中算法起到了至关重要的作用。可以毫不夸张地说,算法是一切程序设计的灵魂和基础。 《C/C++常用算法手册》分3篇,共13章,“第1篇算法基础篇”介绍了算法概述,重点分析了数据结构和基本算法思想;“第2篇算法基本应用篇”详细讲解了算法在排序、查找、数值计算、数论、经典趣题和游戏中的应用;“第3篇算法高级应用篇”讲解了算法的一些高级应用技术,包括在密码学和数据压缩/解压缩中的应用。 《C/C++常用算法手册》知识点覆盖全面、结构安排紧凑、讲解详细、示例丰富。《C/C++常用算法手册》对每一个知识点都给出了相应的算法及应用示例。虽然这些例子都是以C语言来编写的,但是算法并不局限于C语言。如果读者采用其他编程语言,例如C++、C#、VB、Java等,根据其语法格式进行适当的修改即可。 《C/C++常用算法手册 》主要定位于有一定C/C++语言编程基础、想通过学习算法与数据结构提升编程水平的读者,也可作为具有一定编程经验的程序员以及大中专院校学生学习数据结构和算法的参考书。 第1篇 算法基础篇 1 第1章 算法概述 2 1.1 什么是算法 2 1.2 算法的发展历史 3 1.3 算法的分类 4 1.4 算法相关概念的区别 4 1.5 算法的表示 5 1.5.1 自然语言表示 5 1.5.2 流程图表示 6 1.5.3 N-S图表示 7 1.5.4 伪代码表示 7 1.6 算法的性能评价 8 1.7 算法实例 9 1.7.1 查找数字 9 1.7.2 创建项目 11 1.7.3 编译执行 12 1.8 算法的新进展 13 1.9 小结 14 第2章 数据结构 15 2.1 数据结构概述 15 2.1.1 什么是数据结构 15 2.1.2 数据结构中的基本概念 16 2.1.3 数据结构的内容 16 2.1.4 数据结构的分类 18 2.1.5 数据结构的几种存储方式 18 2.1.6 数据类型 19 2.1.7 常用的数据结构 20 2.1.8 选择合适的数据结构解决实际问题 21 2.2 线性表 21 2.2.1 什么是线性表 21 2.2.2 线性表的基本运算 22 2.3 顺序表结构 23 2.3.1 准备数据 23 2.3.2 初始化顺序表 24 2.3.3 计算顺序表长度 24 2.3.4 插入结点 24 2.3.5 追加结点 25 2.3.6 删除结点 25 2.3.7 查找结点 25 2.3.8 显示所有结点 26 2.3.9 顺序表操作示例 26 2.4 链表结构 30 2.4.1 什么是链表结构 30 2.4.2 准备数据 31 2.4.3 追加结点 31 2.4.4 插入头结点 33 2.4.5 查找结点 33 2.4.6 插入结点 34 2.4.7 删除结点 35 2.4.8 计算链表长度 36 2.4.9 显示所有结点 36 2.4.10 链表操作示例 37 2.5 栈结构 41 2.5.1 什么是栈结构 41 2.5.2 准备数据 42 2.5.3 初始化栈结构 42 2.5.4 判断空栈 43 2.5.5 判断满栈 43 2.5.6 清空栈 43 2.5.7 释放空间 44 2.5.8 入栈 44 2.5.9 出栈 44 2.5.10 读结点数据 45 2.5.11 栈结构操作示例 45 2.6 队列结构 48 2.6.1 什么是队列结构 48 2.6.2 准备数据 49 2.6.3 初始化队列结构 49 2.6.4 判断空队列 50 2.6.5 判断满队列 50 2.6.6 清空队列 50 2.6.7 释放空间 51 2.6.8 入队列 51 2.6.9 出队列 51 2.6.10 读结点数据 52 2.6.11 计算队列长度 52 2.6.12 队列结构操作示例 53 2.7 树结构 56 2.7.1 什么是树结构 56 2.7.2 树的基本概念 56 2.7.3 二叉树 57 2.7.4 准备数据 61 2.7.5 初始化二叉树 61 2.7.6 添加结点 62 2.7.7 查找结点 63 2.7.8 获取左子树 64 2.7.9 获取右子树 64 2.7.10 判断空树 65 2.7.11 计算二叉树深度 65 2.7.12 清空二叉树 65 2.7.13 显示结点数据 66 2.7.14 遍历二叉树 66 2.7.15 树结构操作示例 68 2.8 图结构 71 2.8.1 什么是图结构 71 2.8.2 图的基本概念 72 2.8.3 准备数据 76 2.8.4 创建图 78 2.8.5 清空图 79 2.8.6 显示图 79 2.8.7 遍历图 80 2.8.8 图结构操作示例 81 2.9 小结 84 第3章 基本算法思想 85 3.1 常用算法思想概述 85 3.2 穷举算法思想 85 3.2.1 穷举算法基本思想 86 3.2.2 穷举算法示例 86 3.3 递推算法思想 88 3.3.1 递推算法基本思想 88 3.3.2 递推算法示例 88 3.4 递归算法思想 90 3.4.1 递归算法基本思想 90 3.4.2 递归算法示例 90 3.5 分治算法思想 92 3.5.1 分治算法基本思想 92 3.5.2 分治算法示例 92 3.6 概率算法思想 96 3.6.1 概率算法基本思想 96 3.6.2 概率算法示例 97 3.7 小结 98 第2篇 算法基本应用篇 99 第4章 排序算法 100 4.1 排序算法概述 100 4.2 冒泡排序法 101 4.2.1 冒泡排序算法 101 4.2.2 冒泡排序算法示例 102 4.3 选择排序法 104 4.3.1 选择排序算法 104 4.3.2 选择排序算法示例 105 4.4 插入排序法 107 4.4.1 插入排序算法 107 4.4.2 插入排序算法示例 108 4.5 Shell排序法 110 4.5.1 Shell排序算法 110 4.5.2 Shell排序算法示例 111 4.6 快速排序法 113 4.6.1 快速排序算法 113 4.6.2 快速排序算法示例 114 4.7 堆排序法 116 4.7.1 堆排序算法 116 4.7.2 堆排序算法示例 121 4.8 合并排序法 123 4.8.1 合并排序算法 123 4.8.2 合并排序算法示例 126 4.9 排序算法的效率 129 4.10 排序算法的其他应用 130 4.10.1 反序排序 130 4.10.2 字符串数组的排序 132 4.10.3 字符串的排序 135 4.11 小结 137 第5章 查找算法 138 5.1 查找算法概述 138 5.2 顺序查找 138 5.2.1 顺序查找算法 139 5.2.2 顺序查找操作示例 139 5.3 折半查找 141 5.3.1 折半查找算法 141 5.3.2 折半查找操作示例 142 5.4 数据结构中的查找算法 145 5.4.1 顺序表结构中的查找算法 145 5.4.2 链表结构中的查找算法 148 5.4.3 树结构中的查找算法 151 5.4.4 图结构中的查找算法 152 5.5 小结 153 第6章 基本数学问题 154 6.1 判断闰年 154 6.2 多项式计算 156 6.2.1 —维多项式求值 156 6.2.2 二维多项式求值 158 6.2.3 多项式乘法 160 6.2.4 多项式除法 161 6.3 随机数生成算法 164 6.4 复数运算 171 6.4.1 简单的复数运算 172 6.4.2 复数的幂运算 174 6.4.3 复指数运算 176 6.4.4 复对数运算 177 6.4.5 复正弦运算 178 6.4.6 复余弦运算 179 6.5 阶乘 180 6.6 计算π的近似值 183 6.6.1 割圆术 183 6.6.2 蒙特卡罗算法 185 6.6.3 级数公式 187 6.7 矩阵运算 190 6.7.1 矩阵加法 190 6.7.2 矩阵减法 191 6.7.3 矩阵乘法 193 6.8 方程求解 195 6.8.1 线性方程求解——高斯消元法 195 6.8.2 非线性方程求解——二分法 200 6.8.3 非线性方程求解——牛顿迭代法 202 6.9 小结 205 第7章 复杂的数值计算算法 206 7.1 拉格朗日插值 206 7.1.1 拉格朗日插值算法 206 7.1.2 拉格朗日插值示例 207 7.2 数值积分 210 7.2.1 数值积分算法 210 7.2.2 数值积分示例 211 7.3 开平方 213 7.3.1 开平方算法 213 7.3.2 开平方示例 213 7.4 极值问题的求解算法 215 7.4.1 极值求解算法 215 7.4.2 极值求解示例 217 7.5 特殊函数的计算算法 221 7.5.1 伽玛函数 221 7.5.2 贝塔函数 224 7.5.3 正弦积分函数 228 7.5.4 余弦积分函数 231 7.5.5 指数积分函数 235 7.6 小结 239 第8章 经典数据结构问題 240 8.1 动态数组排序 240 8.1.1 动态数组的存储和排序 240 8.1.2 动态数组排序示例 241 8.2 约瑟夫环 243 8.2.1 简单约瑟夫环算法 243 8.2.2 简单约瑟夫环求解 245 8.2.3 复杂约瑟夫环算法 247 8.2.4 复杂约瑟夫环求解 248 8.3 城市之间的最短总距离 250 8.3.1 最短总距离算法 250 8.3.2 最短总距离求解 253 8.4 最短路径 257 8.4.1 最短路径算法 258 8.4.2 最短路径求解 260 8.5 括号匹配 265 8.5.1 括号匹配算法 265 8.5.2 括号匹配求解 267 8.6 小结 270 第9章 数论问题 271 9.1 数论 271 9.1.1 数论概述 271 9.1.2 数论的分类 272 9.1.3 初等数论 273 9.1.4 基本概念 273 9.2 完全数 274 9.2.1 完全数概述 274 9.2.2 计算完全数算法 275 9.3 亲密数 277 9.3.1 亲密数概述 277 9.3.2 计算亲密数算法 277 9.4 水仙花数 280 9.4.1 水仙花数概述 280 9.4.2 计算水仙花数算法 281 9.5 自守数 283 9.5.1 自守数概述 283 9.5.2 计算自守数算法 284 9.6 最大公约数 287 9.6.1 计算最大公约数算法——搌转相除法 287 9.6.2 计算最大公约数算法一一Stein算法 288 9.6.3 计算最大公约数示例 289 9.7 最小公倍数 290 9.8 素数 292 9.8.1 素数概述 292 9.8.2 计算素数算法 292 9.9 回文素数 294 9.9.1 回文素数概述 294 9.9.2 计算回文素数算法 294 9.10 平方回文数 297 9.10.1 平方回文数概述 297 9.10.2 计算平方回文数算法 297 9.11 分解质因数 299 9.12 小结 301 第10 章算法经典趣题 302 0. .l 百钱买百鸡 302 10.1.1 百钱买百鸡算法 302 10.1.2 百钱买百鸡求解 303 10.2 五家共井 304 10.2.1 五家共井算法 304 10.2.2 五家共井求解 305 10.3 鸡兔同笼 307 10.3.1 鸡兔同笼算法 307 10.3.2 鸡兔同笼求解 308 10.4 猴子吃桃 308 10.4.1 猴子吃桃算法 308 10.4.2 猴子吃桃求解 309 10.5 舍罕王赏麦 310 10.5.1 舍罕王赏麦问题 310 10.5.2 舍罕王赏麦求解 311 10.6 汉诺塔 312 10.6.1 汉诺塔算法 312 10.6.2 汉诺塔求解 314 10.7 窃贼问题 315 10.7.1 窃贼问题算法 315 10.7.2 窃贼问题求解 317 10.8 马踏棋盘 320 10.8.1 马踏棋盘算法 320 10.8.2 马踏棋盘求解 321 10.9 八皇后问题 323 10.9.1 八皇后问题算法 324 10.9.2 八皇后问题求解 325 10.10 寻找假银币 327 10.10.1 寻找假银币算法 327 10.10.2 寻找假银币求解 329 10.11 青蛙过河 331 10.11.1 青蛙过河算法 331 10.11.2 青蛙过河求解 333 10.12 三色旗 335 10.12.1 三色旗算法 335 10.12.2 三色旗求解 337 10.13 渔夫捕鱼 339 10.13.1 渔夫捕鱼算法 339 10.13.2 渔夫捕魚求解 340 10.14 爱因斯坦的阶梯 341 10.14.1 爱因斯坦的阶梯算法 341 10.14.2 爱因斯坦的阶梯求解 342 10.15 兔子产仔 342 10.15.1 兔子产仔算法 343 10.15.2 兔子产仔求解 343 10.16 常胜将军 344 10.16.1 常胜将军算法 344 10.16.2 常胜将军求解 345 10.17 新郎和新娘 346 10.17.1 新郎和新娘算法 347 10.17.2 新郎和新娘求解 348 10.18 三色球 349 10.18.1 三色球算法 349 10.18.2 三色球求解 350 10.19 小结 351 第11章 游戏中的算法 352 11.1 洗扑克牌 352 11.1.1 洗扑克牌算法 352 11.1.2 洗扑克牌示例 353 11.2 取火柴游戏 356 11.2.1 取火柴游戏算法 356 11.2.2 取火柴游戏示例 357 11.3 10点半 358 11.3.1 10点半算法 358 11.3.2 10点半游戏示例 363 11.4 生命游戏 368 11.4.1 生命游戏的原理 368 11.4.2 生命游戏的算法 369 11.4.3 生命游戏示例 371 11.5 小结 376 第3篇 算法高级应用篇 377 第12章 密码学算法 378 12.1 密码学概述 378 12.1.1 密码学的发展 378 12.1.2 密码学的基本概念 379 12.1.3 柯克霍夫斯原则 379 12.1.4 经典密码学算法 380 12.2 换位加密解密 381 12.2.1 换位加密解密算法 381 12.2.2 换位加密解密算法示例 383 12.3 替换加密解密 386 12.3.1 替换加密解密算法 386 12.3.2 替换加密解密算法示例 388 12.4 位加密解密 389 12.4.1 位加密解密算法 390 12.4.2 位加密解密算法示例 391 12.5 一次一密加密解密算法 392 12.5.1 一次一密加密解密算法 392 12.5.2 一次一密加密解密算法示例 394 12.6 小结 396 第13章 压缩与解压缩算法 397 13.1 压缩与解压缩概述 397 13.1.1 压缩与解压缩分类 397 13.1.2 典型的压缩解压缩算法 397 13.2 压缩算法 398 13.3 解压缩算法 401 13.4 压缩/解压缩示例 404 13.5 小结 406
window与linux美中不足的就是自动化操作,linux中只要简单的shell脚本就能实现大量批处理操作,可是windows中大部分程序主要GUI(界面)完成的,在这种近况下大量的冗余操作无聊而又容易出错。有没有办法完美的windows自动化呢?终于找到好东西了autoit3 AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件, 它被设计用来在Windows GUI(用户界面)中进行自动操作. 通过它可以组合使用模拟键击,鼠标移动和窗口/控件操作等来实现自动化任务, 而这是其它语言所无法做到或尚无可靠方法实现的 (比如VBScript和SendKeys). AutoIt 非常小巧,完全运行在所有windows操作系统上. (thesnow注:现在已经不再支持win 9x,微软连XP都能放弃,何况一个win 9x支持), 并且不需要任何运行库. AutoIt 最初是为PC(个人电脑)的"批量处理"而设计, 用于对数千台PC进行(同样的)配置. 现在,autoit是一个支持复杂表达式, 自定义函数,循环等的强大脚本软件. AutoIt 可以做的事: 简单易懂的类 BASIC 表达式 模拟键盘,鼠标动作事件 操作窗口与进程 直接与窗口的"标准控件"交互(设置/获取 文字,移动,关闭,等等) 脚本可以编译为标准可执行文件 创建用户图形界面接口(GUI) COM支持 正则表达式 直接调用外部DLL 和 Windows API 函数 程序运行为功能(让程序运行于其它账户) 详细易懂的帮助文件于基于社区的支持论坛 完全兼容于 Windows 2000 / XP / 2003 / Vista / 2008 Unicode 与 64位 运算支持 高精度,易使用的数学运算 可以运行于 Windows Vista Account Control (UAC) AutoIt 被设计得尽可能小, 并且不用依赖外部DLL文件或添加注册表项目即可独立运行. 也可以安全的成为服务运行. 脚本可以使用Aut2Exe编译为可独立运行的文件 此外我们还设计了 AutoIt 的 ActiveX 和 DLL 版本 —— AutoItX 这是个组件化的语言(COM 同一 DLL 文件中的标准DLL函数). AutoItX 将使得您可以加入一些AutoIt 独有的特性到您最常用的脚本语言或程序设计语言中去! 最重要的是,AutoIt 将继续是免费的!!!!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是元笙阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值