On fish master commit 1261b53d9669cbe635c467e2236f80d5b2701bac: > math --base hex -10 0x0 > math --base hex 'pow(2, 40)' 0xffffffff this is because the value is converted to a (presumably 32 bit) int, and then cast to an unsigned int before it is printed.