4 ms·
Computers can only natively store integers, so they need some way of representing decimal numbers. Really? How do computers "natively" store integers?
by TekMol 7y ago
Computers can only natively store integers,
so they need some way of representing decimal numbers.
Really? How do computers "natively" store integers?
- tyingq 7y agoIt seems to just be layman shorthand for storing (not huge) integers as binary isn't lossy.
- Dylan16807 7y agoStoring integers as decimal (which computers can do easily) isn't lossy either.
- viraptor 7y agoI believe that's where "natively" comes in. If you store it in binary, you can operate on the values as numbers. If you do some decimal conversion, it's a blob of data. (Yes, there are BCD instructions but they're massively limited)
- SmellyGeekBoy 7y agoDecimal numbers are still "stored as binary" at the silicon level.
- mondoshawan 7y agoUnless you're on an IBM 1401... :D
- Merrill 7y agoz14 and Power 9 appear to support decimal integer and float. Does Python on those processors support their use?
- tyingq 7y agoI meant as opposed to floats, precision loss, etc.
- mumblemumble 7y agoThe intent of that sentence is a lot clearer if you also consider the subsequent text, which expands on the idea quite a bit: > Computers can only natively store integers, so they need some way of representing decimal numbers. This representation comes with some degree of inaccuracy. . . Why does this happen? It's actually pretty simple. When you have a base 10 system (like ours), it can only express fractions that use a prime factor of the base. . . Perhaps a more formally correct way to put it is that integers (and natural numbers) are the only numbers that a computer can manage in a way that behaves reasonably similarly to the corresponding mathematic set. Specifically, as long as you stick to their numeric range, computer ints behave like a group, just like real integers do. But IEEE floats break the definition of a field in every which way, so they're really not a great match for the rationals. That said, you could represent the rationals as a pair of integers, and that would be better-behaved, and some programming languages do do that. But I'm not aware of an ISA that supports it directly.
- bregma 7y agoMaybe you need to parse "decimal numbers" as "fractional numbers" rather than "expressed using a radix of 10". Perhaps it would be better phrased as "computers can only store whole numbers, so they need some way to represent other information, including integers, rational numbers and approximations to complex numbers."