[20170308]bc做xor(異或)計算.txt
[20170308]bc做xor(異或)計算.txt
--//工作需要,需要找一個計算器做異或操作.微軟的計算器太難用了.我需要行式的計算器.
--//google半天,發現如下連結:
http://unix.stackexchange.com/questions/292344/how-to-calculate-hexadecimal-xor-from-shell
--//找到如下連結:
--//簡直就是bc的寶庫.不過我僅僅需要logic.bc,例子:
$ echo 'obase=16;ibase=16; xor(AA,FF)' | bc -l ~/bc/logic.bc
55
--//我昨天計算如下數值的xor,結果如下:
9cb5
0400
0100
0200
0100
0000
0100
----
9bb5
$ cat xor.sh
#! /bin/bash
# just play , calc xor!!
s='0'
for i in $(cat $1| tr 'a-f' 'A-F')
do
#echo "obase=16;ibase=16; xor($s,$i)"
echo $i
s=$(echo "obase=16;ibase=16; xor($s,$i)" | bc -l ~/bc/logic.bc)
done
echo -e "\nxor result: $s \n"
$ cat a.txt
9cb5
0400
0100
0200
0100
0000
0100
--//執行如下:
$ xor.sh a.txt
9CB5
0400
0100
0200
0100
0000
0100
xor result: 9BB5
--OK,結果正確!!
--//再找一個redo檔案頭做驗證看看.
$ xxd -seek 512 -l 512 -c 16 -g 2 /mnt/ramdisk/book/redo01.log | cut -c10-50 > aa1.txt
$ xor.sh aa1.txt
...
xor result: 0
--//說明結果正確.這種指令碼不講究運算效率,不斷呼叫bc效率不會很高,而是講究快速程式設計.最後修改如下,'0000'不參與運算.
$ cat ~/bin/xor.sh
#! /bin/bash
# just play , calc xor!!
s='0'
for i in $(cat $1| tr 'a-f' 'A-F')
do
#echo "obase=16;ibase=16; xor($s,$i)"
echo $i
[ $i != '0000' ] && s=$(echo "obase=16;ibase=16; xor($s,$i)" | bc -l ~/bc/logic.bc)
done
echo -e "\nxor result: $s \n"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2134945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 異或運算 XOR 教程
- [20170617]vim中使用bc計算器.txt
- [20230428]bash實現xor計算.txt
- [20170616]vim中使用bc計算器.txt
- [20121207]vim中使用bc做10與16進位制計算.txt
- python系列--計算異或和Python
- [20190929]bash使用bc計算的相關問題.txt
- 位運算-異或(^)
- bc : 一個命令列計算器命令列
- AIX下的小計算器 bcAI
- 在vim中使用bc進行算術計算
- 工具bc:一個命令列計算器命令列
- java中與運算,或運算,異或運算,取反運算Java
- UVA 12716 GCD XOR (數論 gcd和異或不等式)GC
- [20131125]使用vim做合計計算.txt
- 使用bc做進位制轉換
- Linux下的計算器(bc、expr、dc、echo、awk)Linux
- Codeforces 617E XOR and Favorite Number (區間異或和 莫隊演算法 分塊暴力)演算法
- 異或
- 異或門
- QT硬體異構計算QT
- 學做8位計算機計算機
- 異或運算完成數的交換, a++與++a的區別
- Java中"與"、"或"、"非"、"異或"Java
- python 計算txt文字詞頻率Python
- BUUCTF xor
- 最大異或對
- 異或雜湊
- bc 命令
- 雲端計算素材、課件:雲端計算可以做什麼用?
- 遊戲異或加解密遊戲解密
- 異或線性基
- 異構計算的“備胎上位記”
- HPC高效能運算知識: 異構平行計算
- UOJ Round #15 [構造 | 計數 | 異或雜湊 kmp]KMP
- 基礎演算法題——異或和之和(位運算、組合數)演算法
- XOR 加密簡介加密
- B. Equal XOR