#------------------------------------------------------------------------------ # 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!