You can write down 10^380 with even less than 64 bits: 6 bytes are enough (1 per character - it does not matter here that Matlab uses 2 bytes per char):
'1', '0', '^', '3', '8', '0'
But of course you have a limited accuracy with 6 characters. You can represent 11^381 also, but not 10.1^380. A similar effect occurs for the double format: You have one bit for the sign, some bits for the exponent and some for the mantissa. By this way you get about 16 digits and numbers up to 10^380. But you cannot store e.g. 18 valid digits in such a number due to the limited precision.
In uint64 you can store integers up to 2^64-1 exactly. The greater range of the double format is an effect of the limited precision of the mantissa. So you can see a double as 1 sign bit + a uint52 and a 11 bit exponent.
Best Answer