Why did early computer designers eschew integers?What register size did early computers use?What other computers used this floating-point format?Why did so many early microcomputers use the MOS 6502 and variants?Why did keygens play music?Why were early computers named “Mark”?Why did expert systems fall?Why were early personal computer monitors not green?When did “Zen” in computer programming become a thing?History of advanced hardwareWere there any working computers using residue number systems?

Could the museum Saturn V's be refitted for one more flight?

Running Low on Limestone

In 'Revenger,' what does 'cove' come from?

Replacing legend item names in Carto VL

Is there a hemisphere-neutral way of specifying a season?

How would I stat a creature to be immune to everything but the Magic Missile spell? (just for fun)

How can saying a song's name be a copyright violation?

ssTTsSTtRrriinInnnnNNNIiinngg

What reasons are there for a Capitalist to oppose a 100% inheritance tax?

Should I tell management that I intend to leave due to bad software development practices?

How to tell a function to use the default argument values?

Is it inappropriate for a student to attend their mentor's dissertation defense?

What does the expression "A Mann!" means

Theorists sure want true answers to this!

Is it acceptable for a professor to tell male students to not think that they are smarter than female students?

Can a virus destroy the BIOS of a modern computer?

Is finding a path with more red vertices than blue vertices NP-hard?

Different meanings of こわい

How much of data wrangling is a data scientist's job?

How to properly check if the given string is empty in a POSIX shell script?

Why would the Red Woman birth a shadow if she worshipped the Lord of the Light?

What do you call someone who asks many questions?

Am I breaking OOP practice with this architecture?

What is the most common color to indicate the input-field is disabled?



Why did early computer designers eschew integers?


What register size did early computers use?What other computers used this floating-point format?Why did so many early microcomputers use the MOS 6502 and variants?Why did keygens play music?Why were early computers named “Mark”?Why did expert systems fall?Why were early personal computer monitors not green?When did “Zen” in computer programming become a thing?History of advanced hardwareWere there any working computers using residue number systems?













28















Several early computer designs regarded a 'word' as representing not an integer, with the bits having values 2^0, 2^1, 2^2, ..., but as representing a fixed-point fraction 2^-1, 2^-2, 2^-3, ...



(For the sake of simplicity in this question I'm ignoring the existence of the sign bit and talk only in terms of positive numbers)



Some examples of this convention are EDVAC, EDSAC, and the IAS machine.



Why was this? To me, having dealt with since the 1970s with machines that have "integers" at base, this seems a strange way to look at it.



Does it affect the machine operation in any way? Addition and subtraction are the same regardless of what you think the bits mean, but I suppose that for multiplication of two N-bit words giving an N-bit result, the choice of which N bits to keep depends on your interpretation. (Integer: you want the "right hand word"; fixed-point fraction, you want the "left hand word").










share|improve this question

















  • 18





    Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

    – RichF
    2 days ago







  • 2





    Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

    – chepner
    yesterday











  • Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

    – Ron Maupin
    yesterday






  • 1





    Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

    – fuz
    yesterday











  • Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

    – Andrew Steitz
    23 hours ago















28















Several early computer designs regarded a 'word' as representing not an integer, with the bits having values 2^0, 2^1, 2^2, ..., but as representing a fixed-point fraction 2^-1, 2^-2, 2^-3, ...



(For the sake of simplicity in this question I'm ignoring the existence of the sign bit and talk only in terms of positive numbers)



Some examples of this convention are EDVAC, EDSAC, and the IAS machine.



Why was this? To me, having dealt with since the 1970s with machines that have "integers" at base, this seems a strange way to look at it.



Does it affect the machine operation in any way? Addition and subtraction are the same regardless of what you think the bits mean, but I suppose that for multiplication of two N-bit words giving an N-bit result, the choice of which N bits to keep depends on your interpretation. (Integer: you want the "right hand word"; fixed-point fraction, you want the "left hand word").










share|improve this question

















  • 18





    Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

    – RichF
    2 days ago







  • 2





    Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

    – chepner
    yesterday











  • Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

    – Ron Maupin
    yesterday






  • 1





    Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

    – fuz
    yesterday











  • Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

    – Andrew Steitz
    23 hours ago













28












28








28


3






Several early computer designs regarded a 'word' as representing not an integer, with the bits having values 2^0, 2^1, 2^2, ..., but as representing a fixed-point fraction 2^-1, 2^-2, 2^-3, ...



(For the sake of simplicity in this question I'm ignoring the existence of the sign bit and talk only in terms of positive numbers)



Some examples of this convention are EDVAC, EDSAC, and the IAS machine.



Why was this? To me, having dealt with since the 1970s with machines that have "integers" at base, this seems a strange way to look at it.



Does it affect the machine operation in any way? Addition and subtraction are the same regardless of what you think the bits mean, but I suppose that for multiplication of two N-bit words giving an N-bit result, the choice of which N bits to keep depends on your interpretation. (Integer: you want the "right hand word"; fixed-point fraction, you want the "left hand word").










share|improve this question














Several early computer designs regarded a 'word' as representing not an integer, with the bits having values 2^0, 2^1, 2^2, ..., but as representing a fixed-point fraction 2^-1, 2^-2, 2^-3, ...



(For the sake of simplicity in this question I'm ignoring the existence of the sign bit and talk only in terms of positive numbers)



Some examples of this convention are EDVAC, EDSAC, and the IAS machine.



Why was this? To me, having dealt with since the 1970s with machines that have "integers" at base, this seems a strange way to look at it.



Does it affect the machine operation in any way? Addition and subtraction are the same regardless of what you think the bits mean, but I suppose that for multiplication of two N-bit words giving an N-bit result, the choice of which N bits to keep depends on your interpretation. (Integer: you want the "right hand word"; fixed-point fraction, you want the "left hand word").







history






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 days ago









another-daveanother-dave

1,294315




1,294315







  • 18





    Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

    – RichF
    2 days ago







  • 2





    Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

    – chepner
    yesterday











  • Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

    – Ron Maupin
    yesterday






  • 1





    Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

    – fuz
    yesterday











  • Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

    – Andrew Steitz
    23 hours ago












  • 18





    Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

    – RichF
    2 days ago







  • 2





    Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

    – chepner
    yesterday











  • Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

    – Ron Maupin
    yesterday






  • 1





    Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

    – fuz
    yesterday











  • Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

    – Andrew Steitz
    23 hours ago







18




18





Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

– RichF
2 days ago






Very early on, it was likely that computers were not considered to be general purpose machines. So if the main task for which a computer was designed involved doing calculations with flractional numbers, prioritizing them over integers would make sense. It seems likely that computers designed for business programs would be more tuned to integers, because money (in the USA) can be treated as pennies, and very little would need to be fractional.

– RichF
2 days ago





2




2





Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

– chepner
yesterday





Not only can be, but must be, to avoid rounding errors that could lose (or create) money. (This also applies to mils or any other smaller fraction of a dollar that might be necessary.)

– chepner
yesterday













Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

– Ron Maupin
yesterday





Also, remember that one of the primary first functions of computers was to calculate ballistic trajectories, especially for military applications.

– Ron Maupin
yesterday




1




1





Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

– fuz
yesterday





Note that this is not universal; some early computers used integers, others (Zuse's Z3) used floating point numbers.

– fuz
yesterday













Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

– Andrew Steitz
23 hours ago





Awesome question. Not something I even realized. However it appears that I am a few years younger than you (b 1969).

– Andrew Steitz
23 hours ago










7 Answers
7






active

oldest

votes


















30














I'd think that it was mostly down to the preferences of John von Neumann at the time. He was a strong advocate of fixed point representations, and early computers were designed with long words to accommodate a large range of numbers that way. You certainly don't need 30-40 bits to cover the most useful integers, but that many were needed if you wanted plenty of digits before and after the decimal point.



By the 1970s though, the costs of integration were such that much smaller word sizes made sense. Minicomputers were commonly 16 bit architectures, and micros 8 bits or sometimes even 4. At that point you needed all the integers you can get, plus floating point had largely replaced fixed point for when you needed decimals.



Nowadays we'd think nothing of using 64 bit integers, of course, but it's a heck of a lot easier to integrate the number of logic gates required for that than it would have been back when they all had to be made out of fragile and expensive vacuum tubes.






share|improve this answer








New contributor




Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

    – another-dave
    2 days ago






  • 3





    Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

    – chepner
    yesterday











  • I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

    – Matthew Barber
    yesterday












  • @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

    – another-dave
    yesterday











  • The First Draft is the clincher for this argument, I think. Thanks for the reference.

    – another-dave
    yesterday


















9














This is not really a hardware issue at all, but just a different way of interpreting the bit patterns. A "fixed decimal point" representation for numbers is still used in some situations, where the full power and flexibility of floating point is unnecessary.



The IBM S/360 and S/370 hardware had decimal arithmetic as well as binary, and IBM's PL/I programming language had both "fixed decimal" and "fixed binary" data types, with an implied decimal point anywhere in the number, though fixed binary was mainly used for the special case of "integers". Fixed decimal was an obvious choice for handling financial calculations involving decimal currency such as dollars and cents, for example, because of the simple conversion to and from human-readable numbers.



Fixed point binary is still used in numerical applications like signal processing, where lightweight hardware (integer-only) and speed are critical and the generality of floating point is unnecessary.



In terms of the computer's instruction set, all that is needed is integer add, subtract, multiply, divide, and shift instructions. Keeping track of the position of the implied decimal point could be done by the compiler (as in PL/1) or left to the programmer to do manually. Used carefully, doing it manually could both minimize the number of shift operations and maximize the numerical precision of the calculations, compared with compiler-generated code.



There is a lot of similarity between this type of numerical processing and "multi-word integers" used for very high precision (up to billions of significant figures) in modern computing.






share|improve this answer


















  • 2





    Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

    – manassehkatz
    2 days ago






  • 2





    Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

    – Graham
    2 days ago






  • 2





    Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

    – Pharap
    yesterday


















5














Some early computers did use integers.



Manchester University's ‘Baby’ computer calculated the highest factor of an integer on 21 June 1948. https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-3.2



EDSAC 2 which entered service in 1958, could do integer addition. https://www.tcm.phy.cam.ac.uk/~mjr/courses/Hardware18/hardware.pdf






share|improve this answer








New contributor




Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

    – another-dave
    yesterday


















3














Computers came from calculators, and calculators are designed to solve numerical computations, and hence require the decimal point.



Babbage's difference engine ~1754 had 10 of 10-digit decimal numbers.  Its job was computing numerical tables — and printing them, since the copying of the day (by humans) made more mistakes than the mathematicians who made the original calculations.



EDVAC was part of the US Army's Ordnance Department, its job was ballistics computation.






share|improve this answer

























  • But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

    – another-dave
    yesterday


















3














The problems early computers were meant to solve used real numbers. Often these numbers were very large or very small, so you need a scale factor for the computer to handle them.



If the computer natively thinks in numbers from 0.0 to 1.0 (or -1.0 to 1.0), then the scale factor is simply the maximum value of the variable. This is easy for human minds to handle and not very error prone.



If the computer natively thinks in numbers from 0 to 16777215 (or whatever), the scale factor becomes something completely different. Getting the scale factor right becomes much harder and a source of errors.



Lets go with less errors, shall we?



As others have pointed out, the actual hardware is the same for the two schemes, it is just a matter of how humans interact with the machine. 0.0 to 1.0 is more human friendly.






share|improve this answer






























    1














    At the time using fiction point fraction representation seemed like the best solution for handling floating point numbers, because it avoids many of the issues that are present with other formats such as not being able to precisely represent 0.5 and cumulative errors when performing relatively common operations repeatedly.



    In time better ways to represent floating point numbers with binary were devised. General purpose hardware was able to process such formats and gave the programmer a free choice to select the one they wanted.






    share|improve this answer






























      0














      I am not sure i understand your question right, but if i did then "word" is commonly used not as data-type (like "integer") but as whole hardware register, so 8 bit CPU has 8-bit machine word.



      In fixed-point operations, common practice is to store "before point" value in one register, and "after point" value in another register. So, from CPU's point of view they both are words.



      What is the main difference between word and integer? word is only a set of bites, it does not represent any digital value, because one and the same word can be represented as different digital values - for example 11111111 word can be -128 Integer or 256 "Unsigned", depending on how you interpretent first bit. Two words can be Double (Integer before point and Integer or Unsigned after point), Long (for 8-bit cpu 16-bit int) and so on, depending on how you use their values in your calculations.



      I suppose that "word", in your case, was used to describe the way to access a part of data in memory, meaning that it can not or must not be a whole number, whose other part can be located in different word.






      share|improve this answer








      New contributor




      Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















        Your Answer








        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "648"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        noCode: true, onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













        draft saved

        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9500%2fwhy-did-early-computer-designers-eschew-integers%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        7 Answers
        7






        active

        oldest

        votes








        7 Answers
        7






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        30














        I'd think that it was mostly down to the preferences of John von Neumann at the time. He was a strong advocate of fixed point representations, and early computers were designed with long words to accommodate a large range of numbers that way. You certainly don't need 30-40 bits to cover the most useful integers, but that many were needed if you wanted plenty of digits before and after the decimal point.



        By the 1970s though, the costs of integration were such that much smaller word sizes made sense. Minicomputers were commonly 16 bit architectures, and micros 8 bits or sometimes even 4. At that point you needed all the integers you can get, plus floating point had largely replaced fixed point for when you needed decimals.



        Nowadays we'd think nothing of using 64 bit integers, of course, but it's a heck of a lot easier to integrate the number of logic gates required for that than it would have been back when they all had to be made out of fragile and expensive vacuum tubes.






        share|improve this answer








        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.















        • 1





          I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

          – another-dave
          2 days ago






        • 3





          Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

          – chepner
          yesterday











        • I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

          – Matthew Barber
          yesterday












        • @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

          – another-dave
          yesterday











        • The First Draft is the clincher for this argument, I think. Thanks for the reference.

          – another-dave
          yesterday















        30














        I'd think that it was mostly down to the preferences of John von Neumann at the time. He was a strong advocate of fixed point representations, and early computers were designed with long words to accommodate a large range of numbers that way. You certainly don't need 30-40 bits to cover the most useful integers, but that many were needed if you wanted plenty of digits before and after the decimal point.



        By the 1970s though, the costs of integration were such that much smaller word sizes made sense. Minicomputers were commonly 16 bit architectures, and micros 8 bits or sometimes even 4. At that point you needed all the integers you can get, plus floating point had largely replaced fixed point for when you needed decimals.



        Nowadays we'd think nothing of using 64 bit integers, of course, but it's a heck of a lot easier to integrate the number of logic gates required for that than it would have been back when they all had to be made out of fragile and expensive vacuum tubes.






        share|improve this answer








        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.















        • 1





          I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

          – another-dave
          2 days ago






        • 3





          Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

          – chepner
          yesterday











        • I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

          – Matthew Barber
          yesterday












        • @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

          – another-dave
          yesterday











        • The First Draft is the clincher for this argument, I think. Thanks for the reference.

          – another-dave
          yesterday













        30












        30








        30







        I'd think that it was mostly down to the preferences of John von Neumann at the time. He was a strong advocate of fixed point representations, and early computers were designed with long words to accommodate a large range of numbers that way. You certainly don't need 30-40 bits to cover the most useful integers, but that many were needed if you wanted plenty of digits before and after the decimal point.



        By the 1970s though, the costs of integration were such that much smaller word sizes made sense. Minicomputers were commonly 16 bit architectures, and micros 8 bits or sometimes even 4. At that point you needed all the integers you can get, plus floating point had largely replaced fixed point for when you needed decimals.



        Nowadays we'd think nothing of using 64 bit integers, of course, but it's a heck of a lot easier to integrate the number of logic gates required for that than it would have been back when they all had to be made out of fragile and expensive vacuum tubes.






        share|improve this answer








        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.










        I'd think that it was mostly down to the preferences of John von Neumann at the time. He was a strong advocate of fixed point representations, and early computers were designed with long words to accommodate a large range of numbers that way. You certainly don't need 30-40 bits to cover the most useful integers, but that many were needed if you wanted plenty of digits before and after the decimal point.



        By the 1970s though, the costs of integration were such that much smaller word sizes made sense. Minicomputers were commonly 16 bit architectures, and micros 8 bits or sometimes even 4. At that point you needed all the integers you can get, plus floating point had largely replaced fixed point for when you needed decimals.



        Nowadays we'd think nothing of using 64 bit integers, of course, but it's a heck of a lot easier to integrate the number of logic gates required for that than it would have been back when they all had to be made out of fragile and expensive vacuum tubes.







        share|improve this answer








        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        share|improve this answer



        share|improve this answer






        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        answered 2 days ago









        Matthew BarberMatthew Barber

        41623




        41623




        New contributor




        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.





        New contributor





        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.






        Matthew Barber is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.







        • 1





          I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

          – another-dave
          2 days ago






        • 3





          Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

          – chepner
          yesterday











        • I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

          – Matthew Barber
          yesterday












        • @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

          – another-dave
          yesterday











        • The First Draft is the clincher for this argument, I think. Thanks for the reference.

          – another-dave
          yesterday












        • 1





          I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

          – another-dave
          2 days ago






        • 3





          Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

          – chepner
          yesterday











        • I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

          – Matthew Barber
          yesterday












        • @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

          – another-dave
          yesterday











        • The First Draft is the clincher for this argument, I think. Thanks for the reference.

          – another-dave
          yesterday







        1




        1





        I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

        – another-dave
        2 days ago





        I'm persuaded by the "preferences of von Neumann" part, since the 3 machines I mentioned had common conceptual roots, but less so by the rest. I agree with the word-size rationale. But given the machine is "fixed point" only, the choice seemed to be between integers, and fractions of magnitude between 0 and 1. Neither seems to me to be better suited to "plenty of digits before and after the decimal point". Either way, the position of the point is purely notional and the programmer needs to keep track of it.

        – another-dave
        2 days ago




        3




        3





        Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

        – chepner
        yesterday





        Fixed-point doesn't have to be fractions between 0 and 1; it just means the value is an integer scaled by some fixed constant.

        – chepner
        yesterday













        I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

        – Matthew Barber
        yesterday






        I could perhaps have been clearer on that. Von Neumann points out in First Draft of a Report on the EDVAC that you can do all the calculations with numbers between 0 and 1 and scale the result accordingly, even. You still need those very long words to avoid a loss of precision with the intermediate results though.

        – Matthew Barber
        yesterday














        @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

        – another-dave
        yesterday





        @chepner I'm aware of 'manual' scaling. But if you read, for example, the EDSAC description in Wilkes, Wheeler, and Gill, then they regard the store itself as holding numbers in the range -1 to +1 (binary point at left), rather than -2^35 to +2^35 (binary point at right) or anything else. That's the point of my question.

        – another-dave
        yesterday













        The First Draft is the clincher for this argument, I think. Thanks for the reference.

        – another-dave
        yesterday





        The First Draft is the clincher for this argument, I think. Thanks for the reference.

        – another-dave
        yesterday











        9














        This is not really a hardware issue at all, but just a different way of interpreting the bit patterns. A "fixed decimal point" representation for numbers is still used in some situations, where the full power and flexibility of floating point is unnecessary.



        The IBM S/360 and S/370 hardware had decimal arithmetic as well as binary, and IBM's PL/I programming language had both "fixed decimal" and "fixed binary" data types, with an implied decimal point anywhere in the number, though fixed binary was mainly used for the special case of "integers". Fixed decimal was an obvious choice for handling financial calculations involving decimal currency such as dollars and cents, for example, because of the simple conversion to and from human-readable numbers.



        Fixed point binary is still used in numerical applications like signal processing, where lightweight hardware (integer-only) and speed are critical and the generality of floating point is unnecessary.



        In terms of the computer's instruction set, all that is needed is integer add, subtract, multiply, divide, and shift instructions. Keeping track of the position of the implied decimal point could be done by the compiler (as in PL/1) or left to the programmer to do manually. Used carefully, doing it manually could both minimize the number of shift operations and maximize the numerical precision of the calculations, compared with compiler-generated code.



        There is a lot of similarity between this type of numerical processing and "multi-word integers" used for very high precision (up to billions of significant figures) in modern computing.






        share|improve this answer


















        • 2





          Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

          – manassehkatz
          2 days ago






        • 2





          Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

          – Graham
          2 days ago






        • 2





          Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

          – Pharap
          yesterday















        9














        This is not really a hardware issue at all, but just a different way of interpreting the bit patterns. A "fixed decimal point" representation for numbers is still used in some situations, where the full power and flexibility of floating point is unnecessary.



        The IBM S/360 and S/370 hardware had decimal arithmetic as well as binary, and IBM's PL/I programming language had both "fixed decimal" and "fixed binary" data types, with an implied decimal point anywhere in the number, though fixed binary was mainly used for the special case of "integers". Fixed decimal was an obvious choice for handling financial calculations involving decimal currency such as dollars and cents, for example, because of the simple conversion to and from human-readable numbers.



        Fixed point binary is still used in numerical applications like signal processing, where lightweight hardware (integer-only) and speed are critical and the generality of floating point is unnecessary.



        In terms of the computer's instruction set, all that is needed is integer add, subtract, multiply, divide, and shift instructions. Keeping track of the position of the implied decimal point could be done by the compiler (as in PL/1) or left to the programmer to do manually. Used carefully, doing it manually could both minimize the number of shift operations and maximize the numerical precision of the calculations, compared with compiler-generated code.



        There is a lot of similarity between this type of numerical processing and "multi-word integers" used for very high precision (up to billions of significant figures) in modern computing.






        share|improve this answer


















        • 2





          Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

          – manassehkatz
          2 days ago






        • 2





          Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

          – Graham
          2 days ago






        • 2





          Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

          – Pharap
          yesterday













        9












        9








        9







        This is not really a hardware issue at all, but just a different way of interpreting the bit patterns. A "fixed decimal point" representation for numbers is still used in some situations, where the full power and flexibility of floating point is unnecessary.



        The IBM S/360 and S/370 hardware had decimal arithmetic as well as binary, and IBM's PL/I programming language had both "fixed decimal" and "fixed binary" data types, with an implied decimal point anywhere in the number, though fixed binary was mainly used for the special case of "integers". Fixed decimal was an obvious choice for handling financial calculations involving decimal currency such as dollars and cents, for example, because of the simple conversion to and from human-readable numbers.



        Fixed point binary is still used in numerical applications like signal processing, where lightweight hardware (integer-only) and speed are critical and the generality of floating point is unnecessary.



        In terms of the computer's instruction set, all that is needed is integer add, subtract, multiply, divide, and shift instructions. Keeping track of the position of the implied decimal point could be done by the compiler (as in PL/1) or left to the programmer to do manually. Used carefully, doing it manually could both minimize the number of shift operations and maximize the numerical precision of the calculations, compared with compiler-generated code.



        There is a lot of similarity between this type of numerical processing and "multi-word integers" used for very high precision (up to billions of significant figures) in modern computing.






        share|improve this answer













        This is not really a hardware issue at all, but just a different way of interpreting the bit patterns. A "fixed decimal point" representation for numbers is still used in some situations, where the full power and flexibility of floating point is unnecessary.



        The IBM S/360 and S/370 hardware had decimal arithmetic as well as binary, and IBM's PL/I programming language had both "fixed decimal" and "fixed binary" data types, with an implied decimal point anywhere in the number, though fixed binary was mainly used for the special case of "integers". Fixed decimal was an obvious choice for handling financial calculations involving decimal currency such as dollars and cents, for example, because of the simple conversion to and from human-readable numbers.



        Fixed point binary is still used in numerical applications like signal processing, where lightweight hardware (integer-only) and speed are critical and the generality of floating point is unnecessary.



        In terms of the computer's instruction set, all that is needed is integer add, subtract, multiply, divide, and shift instructions. Keeping track of the position of the implied decimal point could be done by the compiler (as in PL/1) or left to the programmer to do manually. Used carefully, doing it manually could both minimize the number of shift operations and maximize the numerical precision of the calculations, compared with compiler-generated code.



        There is a lot of similarity between this type of numerical processing and "multi-word integers" used for very high precision (up to billions of significant figures) in modern computing.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 days ago









        alephzeroalephzero

        2,3131815




        2,3131815







        • 2





          Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

          – manassehkatz
          2 days ago






        • 2





          Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

          – Graham
          2 days ago






        • 2





          Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

          – Pharap
          yesterday












        • 2





          Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

          – manassehkatz
          2 days ago






        • 2





          Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

          – Graham
          2 days ago






        • 2





          Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

          – Pharap
          yesterday







        2




        2





        Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

        – manassehkatz
        2 days ago





        Not just because of the simple conversion to and from human-readable numbers. Fixed point decimal, like BCD on later systems, has the big advantage of avoiding things like 0.30 turning into 0.29999999999999999999 etc.

        – manassehkatz
        2 days ago




        2




        2





        Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

        – Graham
        2 days ago





        Fixed-point binary is in widespread use in FPGA work as well. It used to be in heavy use in industry for embedded software generally, before 32-bit microcontrollers with floating-point became available at a reasonable price. I heaved a sigh of relief around 2001 when I could leave that all behind. Then about 4 years back I started working on FPGAs, and I was right back there again!

        – Graham
        2 days ago




        2




        2





        Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

        – Pharap
        yesterday





        Speaking as someone who has actually written a fixed point library in C++ I concur with all points. Integers and fixed points aren't all that different from each other in terms of binary representation. In fact, it could be argued that an integer is just a fixed point type with a fractional size of 0.

        – Pharap
        yesterday











        5














        Some early computers did use integers.



        Manchester University's ‘Baby’ computer calculated the highest factor of an integer on 21 June 1948. https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-3.2



        EDSAC 2 which entered service in 1958, could do integer addition. https://www.tcm.phy.cam.ac.uk/~mjr/courses/Hardware18/hardware.pdf






        share|improve this answer








        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.















        • 1





          Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

          – another-dave
          yesterday















        5














        Some early computers did use integers.



        Manchester University's ‘Baby’ computer calculated the highest factor of an integer on 21 June 1948. https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-3.2



        EDSAC 2 which entered service in 1958, could do integer addition. https://www.tcm.phy.cam.ac.uk/~mjr/courses/Hardware18/hardware.pdf






        share|improve this answer








        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.















        • 1





          Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

          – another-dave
          yesterday













        5












        5








        5







        Some early computers did use integers.



        Manchester University's ‘Baby’ computer calculated the highest factor of an integer on 21 June 1948. https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-3.2



        EDSAC 2 which entered service in 1958, could do integer addition. https://www.tcm.phy.cam.ac.uk/~mjr/courses/Hardware18/hardware.pdf






        share|improve this answer








        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.










        Some early computers did use integers.



        Manchester University's ‘Baby’ computer calculated the highest factor of an integer on 21 June 1948. https://www.open.edu/openlearn/science-maths-technology/introduction-software-development/content-section-3.2



        EDSAC 2 which entered service in 1958, could do integer addition. https://www.tcm.phy.cam.ac.uk/~mjr/courses/Hardware18/hardware.pdf







        share|improve this answer








        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        share|improve this answer



        share|improve this answer






        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.









        answered 2 days ago









        Chris BrownChris Brown

        511




        511




        New contributor




        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.





        New contributor





        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.






        Chris Brown is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.







        • 1





          Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

          – another-dave
          yesterday












        • 1





          Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

          – another-dave
          yesterday







        1




        1





        Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

        – another-dave
        yesterday





        Well, as I understand it, EDSAC could do integer addition too. Where "the book" says you're adding 2^-35 + 2^-35 to get 2^-34, the programmer is perfectly at liberty to believe he's computing 1 + 1 = 2. It's just in the interpretation of the bits. I would describe EDSAC 2 as replacing fixed point arithmetic for both reals and integers, with floating point arithmetic for the reals, leaving fixed point for the integers.

        – another-dave
        yesterday











        3














        Computers came from calculators, and calculators are designed to solve numerical computations, and hence require the decimal point.



        Babbage's difference engine ~1754 had 10 of 10-digit decimal numbers.  Its job was computing numerical tables — and printing them, since the copying of the day (by humans) made more mistakes than the mathematicians who made the original calculations.



        EDVAC was part of the US Army's Ordnance Department, its job was ballistics computation.






        share|improve this answer

























        • But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

          – another-dave
          yesterday















        3














        Computers came from calculators, and calculators are designed to solve numerical computations, and hence require the decimal point.



        Babbage's difference engine ~1754 had 10 of 10-digit decimal numbers.  Its job was computing numerical tables — and printing them, since the copying of the day (by humans) made more mistakes than the mathematicians who made the original calculations.



        EDVAC was part of the US Army's Ordnance Department, its job was ballistics computation.






        share|improve this answer

























        • But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

          – another-dave
          yesterday













        3












        3








        3







        Computers came from calculators, and calculators are designed to solve numerical computations, and hence require the decimal point.



        Babbage's difference engine ~1754 had 10 of 10-digit decimal numbers.  Its job was computing numerical tables — and printing them, since the copying of the day (by humans) made more mistakes than the mathematicians who made the original calculations.



        EDVAC was part of the US Army's Ordnance Department, its job was ballistics computation.






        share|improve this answer















        Computers came from calculators, and calculators are designed to solve numerical computations, and hence require the decimal point.



        Babbage's difference engine ~1754 had 10 of 10-digit decimal numbers.  Its job was computing numerical tables — and printing them, since the copying of the day (by humans) made more mistakes than the mathematicians who made the original calculations.



        EDVAC was part of the US Army's Ordnance Department, its job was ballistics computation.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited yesterday

























        answered yesterday









        Erik EidtErik Eidt

        1,127412




        1,127412












        • But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

          – another-dave
          yesterday

















        • But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

          – another-dave
          yesterday
















        But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

        – another-dave
        yesterday





        But did Babbage say his numbers were between 0 and 10 thousand million (being British, he would not have used "billion" for 10^9), or between 0 and 1 (approximately speaking)?

        – another-dave
        yesterday











        3














        The problems early computers were meant to solve used real numbers. Often these numbers were very large or very small, so you need a scale factor for the computer to handle them.



        If the computer natively thinks in numbers from 0.0 to 1.0 (or -1.0 to 1.0), then the scale factor is simply the maximum value of the variable. This is easy for human minds to handle and not very error prone.



        If the computer natively thinks in numbers from 0 to 16777215 (or whatever), the scale factor becomes something completely different. Getting the scale factor right becomes much harder and a source of errors.



        Lets go with less errors, shall we?



        As others have pointed out, the actual hardware is the same for the two schemes, it is just a matter of how humans interact with the machine. 0.0 to 1.0 is more human friendly.






        share|improve this answer



























          3














          The problems early computers were meant to solve used real numbers. Often these numbers were very large or very small, so you need a scale factor for the computer to handle them.



          If the computer natively thinks in numbers from 0.0 to 1.0 (or -1.0 to 1.0), then the scale factor is simply the maximum value of the variable. This is easy for human minds to handle and not very error prone.



          If the computer natively thinks in numbers from 0 to 16777215 (or whatever), the scale factor becomes something completely different. Getting the scale factor right becomes much harder and a source of errors.



          Lets go with less errors, shall we?



          As others have pointed out, the actual hardware is the same for the two schemes, it is just a matter of how humans interact with the machine. 0.0 to 1.0 is more human friendly.






          share|improve this answer

























            3












            3








            3







            The problems early computers were meant to solve used real numbers. Often these numbers were very large or very small, so you need a scale factor for the computer to handle them.



            If the computer natively thinks in numbers from 0.0 to 1.0 (or -1.0 to 1.0), then the scale factor is simply the maximum value of the variable. This is easy for human minds to handle and not very error prone.



            If the computer natively thinks in numbers from 0 to 16777215 (or whatever), the scale factor becomes something completely different. Getting the scale factor right becomes much harder and a source of errors.



            Lets go with less errors, shall we?



            As others have pointed out, the actual hardware is the same for the two schemes, it is just a matter of how humans interact with the machine. 0.0 to 1.0 is more human friendly.






            share|improve this answer













            The problems early computers were meant to solve used real numbers. Often these numbers were very large or very small, so you need a scale factor for the computer to handle them.



            If the computer natively thinks in numbers from 0.0 to 1.0 (or -1.0 to 1.0), then the scale factor is simply the maximum value of the variable. This is easy for human minds to handle and not very error prone.



            If the computer natively thinks in numbers from 0 to 16777215 (or whatever), the scale factor becomes something completely different. Getting the scale factor right becomes much harder and a source of errors.



            Lets go with less errors, shall we?



            As others have pointed out, the actual hardware is the same for the two schemes, it is just a matter of how humans interact with the machine. 0.0 to 1.0 is more human friendly.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered yesterday









            Stig HemmerStig Hemmer

            12913




            12913





















                1














                At the time using fiction point fraction representation seemed like the best solution for handling floating point numbers, because it avoids many of the issues that are present with other formats such as not being able to precisely represent 0.5 and cumulative errors when performing relatively common operations repeatedly.



                In time better ways to represent floating point numbers with binary were devised. General purpose hardware was able to process such formats and gave the programmer a free choice to select the one they wanted.






                share|improve this answer



























                  1














                  At the time using fiction point fraction representation seemed like the best solution for handling floating point numbers, because it avoids many of the issues that are present with other formats such as not being able to precisely represent 0.5 and cumulative errors when performing relatively common operations repeatedly.



                  In time better ways to represent floating point numbers with binary were devised. General purpose hardware was able to process such formats and gave the programmer a free choice to select the one they wanted.






                  share|improve this answer

























                    1












                    1








                    1







                    At the time using fiction point fraction representation seemed like the best solution for handling floating point numbers, because it avoids many of the issues that are present with other formats such as not being able to precisely represent 0.5 and cumulative errors when performing relatively common operations repeatedly.



                    In time better ways to represent floating point numbers with binary were devised. General purpose hardware was able to process such formats and gave the programmer a free choice to select the one they wanted.






                    share|improve this answer













                    At the time using fiction point fraction representation seemed like the best solution for handling floating point numbers, because it avoids many of the issues that are present with other formats such as not being able to precisely represent 0.5 and cumulative errors when performing relatively common operations repeatedly.



                    In time better ways to represent floating point numbers with binary were devised. General purpose hardware was able to process such formats and gave the programmer a free choice to select the one they wanted.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered yesterday









                    useruser

                    3,940818




                    3,940818





















                        0














                        I am not sure i understand your question right, but if i did then "word" is commonly used not as data-type (like "integer") but as whole hardware register, so 8 bit CPU has 8-bit machine word.



                        In fixed-point operations, common practice is to store "before point" value in one register, and "after point" value in another register. So, from CPU's point of view they both are words.



                        What is the main difference between word and integer? word is only a set of bites, it does not represent any digital value, because one and the same word can be represented as different digital values - for example 11111111 word can be -128 Integer or 256 "Unsigned", depending on how you interpretent first bit. Two words can be Double (Integer before point and Integer or Unsigned after point), Long (for 8-bit cpu 16-bit int) and so on, depending on how you use their values in your calculations.



                        I suppose that "word", in your case, was used to describe the way to access a part of data in memory, meaning that it can not or must not be a whole number, whose other part can be located in different word.






                        share|improve this answer








                        New contributor




                        Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                        Check out our Code of Conduct.
























                          0














                          I am not sure i understand your question right, but if i did then "word" is commonly used not as data-type (like "integer") but as whole hardware register, so 8 bit CPU has 8-bit machine word.



                          In fixed-point operations, common practice is to store "before point" value in one register, and "after point" value in another register. So, from CPU's point of view they both are words.



                          What is the main difference between word and integer? word is only a set of bites, it does not represent any digital value, because one and the same word can be represented as different digital values - for example 11111111 word can be -128 Integer or 256 "Unsigned", depending on how you interpretent first bit. Two words can be Double (Integer before point and Integer or Unsigned after point), Long (for 8-bit cpu 16-bit int) and so on, depending on how you use their values in your calculations.



                          I suppose that "word", in your case, was used to describe the way to access a part of data in memory, meaning that it can not or must not be a whole number, whose other part can be located in different word.






                          share|improve this answer








                          New contributor




                          Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






















                            0












                            0








                            0







                            I am not sure i understand your question right, but if i did then "word" is commonly used not as data-type (like "integer") but as whole hardware register, so 8 bit CPU has 8-bit machine word.



                            In fixed-point operations, common practice is to store "before point" value in one register, and "after point" value in another register. So, from CPU's point of view they both are words.



                            What is the main difference between word and integer? word is only a set of bites, it does not represent any digital value, because one and the same word can be represented as different digital values - for example 11111111 word can be -128 Integer or 256 "Unsigned", depending on how you interpretent first bit. Two words can be Double (Integer before point and Integer or Unsigned after point), Long (for 8-bit cpu 16-bit int) and so on, depending on how you use their values in your calculations.



                            I suppose that "word", in your case, was used to describe the way to access a part of data in memory, meaning that it can not or must not be a whole number, whose other part can be located in different word.






                            share|improve this answer








                            New contributor




                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.










                            I am not sure i understand your question right, but if i did then "word" is commonly used not as data-type (like "integer") but as whole hardware register, so 8 bit CPU has 8-bit machine word.



                            In fixed-point operations, common practice is to store "before point" value in one register, and "after point" value in another register. So, from CPU's point of view they both are words.



                            What is the main difference between word and integer? word is only a set of bites, it does not represent any digital value, because one and the same word can be represented as different digital values - for example 11111111 word can be -128 Integer or 256 "Unsigned", depending on how you interpretent first bit. Two words can be Double (Integer before point and Integer or Unsigned after point), Long (for 8-bit cpu 16-bit int) and so on, depending on how you use their values in your calculations.



                            I suppose that "word", in your case, was used to describe the way to access a part of data in memory, meaning that it can not or must not be a whole number, whose other part can be located in different word.







                            share|improve this answer








                            New contributor




                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.









                            share|improve this answer



                            share|improve this answer






                            New contributor




                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.









                            answered 2 hours ago









                            Stanislav OrlovStanislav Orlov

                            735




                            735




                            New contributor




                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.





                            New contributor





                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.






                            Stanislav Orlov is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.



























                                draft saved

                                draft discarded
















































                                Thanks for contributing an answer to Retrocomputing Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9500%2fwhy-did-early-computer-designers-eschew-integers%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221

                                Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

                                Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given