当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于shell的数学运算符
帖子发表于 : 2013-04-26 1:56 

注册: 2013-04-08 17:01
帖子: 31
系统: debian7.0
送出感谢: 2
接收感谢: 0 次
菜鸟刚刚开始学习脚本,看到了这样一个例子
#!/bin/bash

let x=2 y=2**3 #**是乘幂

(( w=(y/x) + ( (~ ++x) & 0x0f) ))

echo $? w=$w


不明白( (~ ++x) & 0x0f) )是怎么算出12的:em06 困惑ing


_________________
ubuntu12.04不好用,于是我叛逃了。。。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-04-26 8:38 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
[bash]
#!/bin/bash
(( p1=(~ 3) ))
(( p2= p1 & 0x0f ))
printf "%x\t%x\t%d\n" $p1 $p2 $p2
[/bash]
这是位运算吧。
开始的时候x=2,运算前先自加,2自加便是3。
这就变成了
代码:
( (~ 3) & 0x0f) )

在这里3转换为16进制是0x03,取反后是0xfc。
现在成了
代码:
(( 0xfc & 0x0f ))

算一下
代码:
printf "%d\n" 0xfc

可以知道十六进制的0xfc转换为十进制是252。
而十六进制的0x0f则是15。

代码:
echo "ibase=16;obase=2;FC" |bc

十六进制的0xfc转为二进制的结果是11111100。

代码:
echo "ibase=16;obase=2;0F" |bc

十六进制的0x0f转换为二进制的结果是00001111。
现在成了11111100 & 00001111的位运算了。
结果不难得知是00001100,转化为十进制便是((p2x=2#1100));echo $p2x。


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关



_________________
评价: 3.7% Rainy.mayday
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-04-26 8:45 
头像

注册: 2011-06-07 14:20
帖子: 3866
系统: Mint18
送出感谢: 17
接收感谢: 65
啧啧,学习了 :em01


_________________
wiki: ubuntu 技巧


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-04-26 10:42 

注册: 2013-04-08 17:01
帖子: 31
系统: debian7.0
送出感谢: 2
接收感谢: 0 次
原来是位运算和进制的转化啊,长见识了 :em02


_________________
ubuntu12.04不好用,于是我叛逃了。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-04-26 11:01 
头像

注册: 2009-12-01 13:34
帖子: 78
送出感谢: 2
接收感谢: 5
我自认为自己算是脚本高手了~

看了下阁下的语句,

oh,s-h-i-t,
老子不会……


_________________
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-06-03 8:58 
头像

注册: 2011-09-06 22:04
帖子: 1354
送出感谢: 12
接收感谢: 9
引用:
gnome3好看,鼠标点得累死人,眼睛定位累,总点不到啊,程序栏栏一多界面就扁了


_________________
  • The eternal law


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于shell的数学运算符
帖子发表于 : 2013-06-19 17:34 
头像

注册: 2008-07-05 2:15
帖子: 207
送出感谢: 1
接收感谢: 0 次
这些是来自C的按位操作了!


_________________
Bill Z
stat -c %a filename
\_.\{-}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译