#------------------------------------------------------------------------------ # PROJECT EULER # PROBLEM 8 #------------------------------------------------------------------------------ #Find the greatest product of five consecutive digits in the 1000-digit number. #------------------------------------------------------------------------------ # SOLUTION: 40824 #------------------------------------------------------------------------------ # as -32 8.s -o 8.o # gcc -m32 8.o -o 8 #------------------------------------------------------------------------------ data: .string "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450" dec32_format: .string "%d\n" .section .text .globl main main: xor %edi, %edi call main_loop #------------------------------------------------------------------------------ main_exit: xor %eax, %eax incl %eax xor %ebx, %ebx int $0x80 #------------------------------------------------------------------------------ .type print32, @ function print32: pushl 4(%esp) pushl $dec32_format call printf addl $8, %esp ret #------------------------------------------------------------------------------ main_loop: cmpl $1000, %edi je main_exit pushl data(, %edi, 1) call print32 addl $4, %esp incl %edi jmp main_loop
Basically I have a huge string with a 1000 digit number. I need to pick out each individual number from it in order to do some calculations. I get the pick out part, but I don't know how to turn it into a usable integer. If I change my printf string to "%c\n", it prints out each character correctly. But if I change it to "%d\n", which is what I'm looking for, I get this:
.
.
.
859321346
909326340
808858376
808465923
942682118
842543104
858929152
842215944
892482306
926233091
892810498
859125509
808662279
875574021
842280963
808596480
925905412
892809218
842348288
959591687
909718021
859191554
875771401
892613382
808793091
3159300
620769285
1680146432
So how do I convert it into a number?
Thanks!

New Topic/Question
Reply


MultiQuote








|