java数字常量_数字常量 - javawebsoa - 博客园
数字常量
shell脚本在默认情况下都是把数字作为10进制数来处理, 除非这个数字采用了特殊的标记或者前缀. 如果数字以0开头的话那么就是8进制数. 如果数字以0x开头的话那么就是16进制数. 如果数字中间嵌入了#的话, 那么就被认为是BASE#NUMBER形式的标记法(有范围和符号限制).
下面根据具体的实例对这几种表示方法进行深入分析:
#!/bin/bash
let "dec = 32"
echo "decimal number = $dec"
let "oct = 032"
echo "octal number = $oct"
let "hex = 0x32"
echo "hexadecimal number = $hex"
let "bin = 2#1101"
echo "banary number = $bin"
let "b32 = 32#77"
echo "base-32 number = $b32"
let "b64 =64#@_"
echo "base-64 number = $b64"
exit 0
结果:
root@ubuntu:~/resource/shell-study/0506-2013# ./test6.sh
decimal number = 32
octal number = 26
hexadecimal number = 50
banary number = 13
base-32 number = 231
base-64 number = 4031
分析:
1.第一个没有添加如何描述,默认为十进制,32即32
2.这个数据添加了特殊的前缀“0”,是八进制,032即表示八进制的32,换算的十进制即(3*8的1次方+2*8的0次方),也就是十进制的24+2=26
3.这个数据添加了特殊的前缀“0x”,是十六进制,0x32即表示十六进制的32,换算的十进制即(3*16的1次方+2*16的0次方),也就是十进制的48+2=50
4.这个数据是BASE#NUMBER形式,BASE=2,NUMBER=1101,其实就是二进制的意思,1101即表示二进制的1101,换算的十进制即(1*2的3次方+1*2的2次方+0*2的1次方+1*2的0次方),也就是十进制的8+4+0+1=13
5.这个数据是BASE#NUMBER形式,BASE=32,NUMBER=77,其实就是三十二进制的意思,77即表示三十二进制的77,换算的十进制即(7*32的1次方+7*32的0次方),也就是十进制的224+7=231
5.这个数据是BASE#NUMBER形式,BASE=64,NUMBER=@_,其实就是六十四进制的意思,@_即表示三十二进制的@_,这里重点说明一下,在这个六十四进制中每组包括64位,即0-63,0-9即用0-9表示,但是后面的数字都是两位数,所以shell就给出了一种简单的方法来取代这些两位数,10-35这26个位就依次用26个小写字母表示(依次为a-z),36-61这26个位就依次用26个大写字母表示(依次为A-Z),最后还剩下62和63这两个位,聪明的shell于是就用“@”表示62,用“_”表示62,所以也就有了上面的方法了,所以换算成十进制就是62*64的1次方+63*64的0次方,即3968+63=4031
重要的注意事项:
使用一个超出给定进制的数字的话,,将会引起一个错误.
root@ubuntu:~/resource/shell-study/0506-2013# let "val = 081"
bash: let: val = 081: value too great for base (error token is "081")
提示数值过大,即八进制每位的最大值是7,而上面第二位却是8,所以提示错误
到现在看来,其实用八进制,十六进制完全可以不在使用“0”“0x”来表示了,完全可以全部用BASE#NUMBER形式取代,下面做一个下测试验证:
root@ubuntu:~/resource/shell-study/0506-2013# let "val = 8#32"
root@ubuntu:~/resource/shell-study/0506-2013# echo $val
26
root@ubuntu:~/resource/shell-study/0506-2013# let "val = 16#32"
root@ubuntu:~/resource/shell-study/0506-2013# echo $val
50
root@ubuntu:~/resource/shell-study/0506-2013#
结果和上面的结果是一致的
待续。。。。。。
java数字常量_数字常量 - javawebsoa - 博客园相关推荐
- java 粒子滤波_粒子滤波 - gary_123 - 博客园
跟着博主http://blog.csdn.net/heyijia0327/article/details/40899819一起学习 尽管利用高斯逼近能有效解决许多滤波问题,但当滤波分布为多模型或某些状 ...
- java元类_元类 - 一心不乱 - 博客园
我们使用class机制产生的类,然后在通过类产生的对象 而类实际上都是通过type来实现的 首先确定type里需要添加哪些元素 class_name = 'A' 类名 class_base = ( ...
- java 透传_透明传输 - javaadu - 博客园
发送方和接收方数据的长度和内容完全一致,相当于一条无形的传输线. 关于透明传输的问题 透明传输就是在传输过程中,对外界透明,就是说你看不见他是传送网络不管传输的业务如何,我只负责将需要传送的业务传送到 ...
- java 分部类_分部类 - Tekkaman - 博客园
[分部类] 可以将类或结构.接口或方法的定义拆分到两个或多个源文件中.每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.如: 使用partial的几个要点: 1.所有部分都必须 ...
- java 使用webmagic 爬虫框架爬取博客园数据
java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录 webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...
- 随机数是骗人的,.Net、Java、C为我作证 - 杨中科 - 博客园
移动端全链路跟踪保障体系 随机数是骗人的,.Net.Java.C为我作证 - 杨中科 - 博客园
- java代码画樱花飘落_一行代码引入博客园樱花飘落特效
前言 博客园作为面向大众的博客, 个性新颖可以博得一赞, 简约美观也不失阅读体验, 本文对樱花特效js进行了解读, 发现作者的设计确实秒不可言, 即使没有注释, 思路展示的也很清晰. 那就废话不多说, ...
- 限制会话id服务端不共享_会话控制 - able-woman - 博客园
会话控制是什么? cookie和session都是跟踪整个会话过程的技术手段.而会话,就是用户通过浏览器和服务器的一次通话. 为什么要有会话控制? 因为HTTP协议是无状态的,服务器不知道用户上一次做 ...
- JAVA爬虫实践(实践二:博客园)
分析博客园网站的请求可以发现,博客园的分页请求为POST方式,和知乎的滚动加载类似. 不同的是请求响应返回的是HTML而不是JSON. 这样可以套用上一篇爬知乎的代码,需要修改的部分就是POST方法传 ...
- Java实现 第三方的验证码发送问题--博客园老牛大讲堂
简要:本篇文章,主要介绍怎样利用第三方平台实现短信验证码的发送问题.--博客园老牛大讲堂 1.Java发送(验证码,短信)原理--博客园老牛大讲堂 1.首先用户选定一个第三方平台. 2.进行一系列操作 ...
最新文章
- linux软件包管理-rpm
- java自定义字段_自定义字段的设计与实现(Java实用版)
- loadrunner简单的例子(demo)
- 本地数据库与mysql同步软件下载_SyncNavigator数据库同步软件
- android studio gradle 学习,学习Android Studio里的Gradle
- “中兴捧月”报文监视器的实现
- Zabbix(七)zabbix proxy 分布式监控配置
- 《电子基础与维修工具核心教程》——第2章 电阻2.1 电阻器介绍
- IT 技能发展:10 大基本 IT 技能(精通一半你就是人才)
- 房屋出租系统(Java实现-命令行练习版)
- mysql经纬度 微信_微信获取用户的经纬度
- goahead源码分析webs.c
- 华为外包员工是什么样的群体?
- 谱聚类算法入门教程(三)—— 求f^TLf的最小值
- canvas全局合成画月牙_画房子一日营 | 园林设计写生系列课程
- 中国古代四大名著电子书(android)
- 一文读懂对抗学习!5千字精炼提干
- php 启动php-fpm,linux启动多个php-fpm
- 转换 wav,ape,flac 音乐为 mp3,m4a(mp4) 格式
- UX术语详解:任务流,用户流,流程图以及其它全新术语
热门文章
- 台式计算机日历表,Windows台式电脑怎么设置添加桌面日历透明便签?
- vue-html5-editor接收数据,在vue中获取wangeditor的html和text的操作
- python lambda函数两个列表大小关系_python lambda结合列表推导式?
- OpenCV精进之路(十):直方图匹配——模板匹配
- VS错误之error LNK2019: 无法解析的外部符号
- C函数调用过程原理及函数栈帧分析
- 图像处理基础(四)_图像分辨率、图像模式及通道讲解
- android 水印背景功能,Android 给View添加剧复的文字水印背景 相似钉钉通信录的背景效果...
- CS0579	Duplicate 'Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute
- 2019-06-13-vim配色步骤