   How do the computer converts bytes into 10 base numbers?
  Like how the printf("%i",integer); in C++ does.Because I like to create any lengths of numbers & do it as fast as the printf().I whould like to hear the answer in ASM code, & described. Please!Or whould it work as fast in C++ also?   
  I remember writing a binary to ascii x86 assembly routine for one of my courses, but I can't remember it offhand. You should be able to convert a C routine to ASM if one is provided.Here is the routine from my notes in pseudocode:&#8226;BINASCIIoYour output buffer is pointed to by EBXoThe number is in EAXoThe base is in ECXoInstructions&#8226;Test eax, 0fffffffh ; test EAX by ANDing&#8226;Jns positive; sign bit not set&#8226;If the number is negative, put a &#8216;-&#8216; in front of the outbuff and increment the position for printing to the next byte and make the number positive by the &#8216;neg&#8217; opcode&#8226;Then, eax/ecx (num/base)&#8226;Can use the &#8216;div&#8217; instruction &#8211; unlike sparc assembly don&#8217;t have to call anything&#61690;Usage: div source &#8211; depending on source, can be 8- 16- or 32-bit (can use any register)&#61690;Divides eax by source, remainder is in dx, quotient in ax&#61690;If it is 32 bit it divides EDX:EAX by source.&#8226;Mov edx, 0&#61690;Make the upper 32 bits 0 because if you use edx:eax to divide with, it will get confused with edx&#8226;After this division put the remainder in the stack&#8226;Continue doing this, then once you have finished, pop each number in turn and shove it in the output string. As soon as you find the end of the stack terminate&#8226;The bug is that the stack->string function stops upon encountering a zero &#8211; this will asplode on something like 1024Word probably duffed the formatting, but there it is anyway. I've since lost the original assembly file, I think.   ;  For integers, you can even do it without dividing. You can use just plain old addition of binary coded decimals. You have 32 bits in a integer, so it would be trivial to make a table 32 entries long, each entry, i,  being the BCD of 2^i. Then you simply take your integer in question and use its bits to pick out which items in the table to add together. You can of course speed it up by checking many bits at once.For floating point numbers, it is a different story. That involves some knowledge of logarithms. And it has been nearly 20 years since I looked into assembly code for doing just that so I'm rusty.   ;  That previous Anonymous Post was me. Thought I was logged in.And a little clarification on the BCD table method. For signed integers you would use the most significant bit to indicate the signum of the value. If it was set, then the integer is negative and you need to take the two's complement of the value before proceeding to decode the 32 bits.For unsigned integers you just decode all 32 bits the same way.   ;  See Change of radix @ Wikipedia.org for a few examples of the general algorithm.   