I'm trying to do a hex calculation directly with bc, I already specified the scale.
echo 'scale=16;c06b1000-c06a5e78' | bc But I still get a zero. What could be wrong?
echo 'ibase=16;C06D1000-C06A5E78' | bc 176520 Note that only UPPER CASE hex digits are supported as lower case ones would conflict with function and variable names, which is why you got 0 in your example (var1 - var2)
If you need the answer in hex too, just set the obase variable:
echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc 2B188 PS: FYI scale isn't designed for conversion base. From man bc:
scale defines how some operations use digits after the decimal point. The default value of scale is 0. obase before you set ibase. If you set ibase first, then it affects the value parsed for obase too. ie ibase = 16; obase = 16; sets obase to 0x16 = 22