Yeah, but 18446744073709551615 is 0xFFFFFFFFFFFFFFFF and treated an signed, that's -1.Hex values (like integer operators) are int64 (signed 64-bit) max.
v:\> echo %@eval[18446744073709551615=x] 0x7FFFFFFFFFFFFFFF
I already have @CONVERT, which gets it right.Apparently not too occasionally, or you would have mentioned it a few years ago!
I'm afraid you're on your own here -- you can write your own function to do the > 2*64 hex conversions. (But it will not be easy.)
v:\> echo %@eval[2**64-1] 18446744073709551615 v:\> echo %@convert[10,16,18446744073709551615] FFFFFFFFFFFFFFFF
Well I don't know how it does it but @CONVERT correctly turns 18446744073709551615 (which is less than 2**64) into FFFFFFFFFFFFFFFF. And it turns 18446744073709551614 into FFFFFFFFFFFFFFFE. And so on. Maybe @EVAL's "=x" should assume a positive number is desired and use @CONVERT.@CONVERT won't work with anything > 2**64, as it also uses int64 variables.