2
我添加了一系列8196 64位無符號整數,我需要將運行總量「翻轉」回零,並從那裏繼續計數......就像「正常」編程語言在相關的INT_MAX限額。BC中的十六進制如何在8個字節的限制內溢出(uint64)?
正如測試腳本所示,給邊界值(FF,FFFF等)加1會使總數增加。一個特點,毫無疑問,但我想限制它在這個特定的實例64位。
有沒有辦法限制bc
在這?
unset f
for ((i=0; i<8; i++)); do
f=${f}FF; echo -ne "$((${#f}/2)) bytes + 1 "
echo 'ibase=16; obase=10; ('$f'+1)' |bc
done
echo "I want 8th+1 to = 0000000000000000"
# output
#
# 1 bytes + 1 100
# 2 bytes + 1 10000
# 3 bytes + 1 1000000
# 4 bytes + 1 100000000
# 5 bytes + 1 10000000000
# 6 bytes + 1 1000000000000
# 7 bytes + 1 100000000000000
# 8 bytes + 1 10000000000000000
# I want 8th+1 to = 0000000000000000
啊..謝謝...我一直專注於,並期待它是'BC'設置,像'BC_LINE_LENGTH = nnn'或'scale'或者其他類似的東西......我從來沒有以這種方式想到一個模...即。它有效地截斷了高階結束......我只是想過它作爲「永恆存在」商的其餘部分...好吧,整潔......所以我只需要在每次添加後進行模數... :) – 2011-05-15 11:52:20