shell的各种进制
2016-09-01 12:00
155 查看
#!/bin/bash
2 # numbers.sh: 几种不同数制的数字表示法.
3
4 # 10进制: 默认情况
5 let "dec = 32"
6 echo "decimal number = $dec" # 32
7 # 这没什么特别的.
8
9
10 # 8进制: 以'0'(零)开头
11 let "oct = 032"
12 echo "octal number = $oct" # 26
13 # 表达式结果是用10进制表示的.
14 # ---------------------------
15
16 # 16进制: 以'0x'或者'0X'开头的数字
17 let "hex = 0x32"
18 echo "hexadecimal number = $hex" # 50
19 # 表达式结果是用10进制表示的.
20
21 # 其他进制: BASE#NUMBER
22 # BASE的范围在2到64之间.
23 # NUMBER的值必须使用BASE范围内的符号来表示, 具体看下边的示例.
24
25
26 let "bin = 2#111100111001101"
27 echo "binary number = $bin" # 31181
28
29 let "b32 = 32#77"
30 echo "base-32 number = $b32" # 231
31
32 let "b64 = 64#@_"
33 echo "base-64 number = $b64" # 4031
34 # 这个表示法只能工作于受限的ASCII字符范围(2 - 64).
35 # 10个数字 + 26个小写字母 + 26个大写字符 + @ + _
36
37
38 echo
39
40 echo $((36#zz)) $((2#10101010)) $((16#AF16)) $((53#1aA))
41 # 1295 170 44822 3375
42
43
44 # 重要的注意事项:
45 # ---------------
46 # 使用一个超出给定进制的数字的话,
47 #+ 将会引起一个错误.
48
49 let "bad_oct = 081"
50 # (部分的) 错误消息输出:
51 # bad_oct = 081: value too great for base (error token is "081")
52 # Octal numbers use only digits in the range 0 - 7.
2 # numbers.sh: 几种不同数制的数字表示法.
3
4 # 10进制: 默认情况
5 let "dec = 32"
6 echo "decimal number = $dec" # 32
7 # 这没什么特别的.
8
9
10 # 8进制: 以'0'(零)开头
11 let "oct = 032"
12 echo "octal number = $oct" # 26
13 # 表达式结果是用10进制表示的.
14 # ---------------------------
15
16 # 16进制: 以'0x'或者'0X'开头的数字
17 let "hex = 0x32"
18 echo "hexadecimal number = $hex" # 50
19 # 表达式结果是用10进制表示的.
20
21 # 其他进制: BASE#NUMBER
22 # BASE的范围在2到64之间.
23 # NUMBER的值必须使用BASE范围内的符号来表示, 具体看下边的示例.
24
25
26 let "bin = 2#111100111001101"
27 echo "binary number = $bin" # 31181
28
29 let "b32 = 32#77"
30 echo "base-32 number = $b32" # 231
31
32 let "b64 = 64#@_"
33 echo "base-64 number = $b64" # 4031
34 # 这个表示法只能工作于受限的ASCII字符范围(2 - 64).
35 # 10个数字 + 26个小写字母 + 26个大写字符 + @ + _
36
37
38 echo
39
40 echo $((36#zz)) $((2#10101010)) $((16#AF16)) $((53#1aA))
41 # 1295 170 44822 3375
42
43
44 # 重要的注意事项:
45 # ---------------
46 # 使用一个超出给定进制的数字的话,
47 #+ 将会引起一个错误.
48
49 let "bad_oct = 081"
50 # (部分的) 错误消息输出:
51 # bad_oct = 081: value too great for base (error token is "081")
52 # Octal numbers use only digits in the range 0 - 7.
相关文章推荐
- shell 中参数化各种自己写的函数,以便下次方便调用
- //各种进制转换的水题// Specialized Four-Digit Numbers ------一X
- [趣味Python]各种进制数字转换成十进制数字
- shell中各种比较关系
- java--String转化各种进制
- 各种上传拿shell
- VB 各种进制相互转换大全
- C#各种进制之间数据转换二进制、八进制、十进制、十六进制
- shell中各种符号的应用
- C++各种进制数据输入
- Explain Shell 网站(解释各种Shell命令)
- java简单的各种进制转换
- 高精度各种进制之间转换模板
- 在Linux下执行执行shell脚本和jar的各种方式
- linux中使用shell进行数据库各种操作
- shell中的各种括号的使用方法
- C# 2进制、8进制、10进制、16进制...各种进制间的轻松转换
- 【原创】js实现各种进制的转换
- shell中各种括号的作用()、(())、[]、[[]]、{}
- YT 督促训练 fzoj 2012Solve equation 各种进制转换为10进制