我正在使用“dc”命令将十六进制转换为十进制
public class WeaponBow extends Weapon implements Ranged{
@Override
public boolean onRanged(){
//play animation, check if target is vulnerable, ect.
//return true if the enemy can be hit false otherwise
}
}
问题在于它会破坏大数字的输出
dc -e "16i$1p"
如何防止此行为?是否有选项或参数要传递以禁用此功能?
答案 0 :(得分:0)
http://pubs.opengroup.org/onlinepubs/000095399/utilities/bc.html
离开我的头顶,只需后处理:
echo "ibase=16; FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | bc | perl -pe's/\\\n//'
答案 1 :(得分:0)
这个问题既古老又冷,但我认为值得注意的是,在GNU dc
和bc
的较新版本中,可以通过环境变量禁用此功能
n=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
n+=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
DC_LINE_LENGTH=0 dc -e "16i${n}p"
BC_LINE_LENGTH=0 bc <<<"ibase=16; $n"