Re: Array to integer problem(integer too long).

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ak, true true.  Add ll to the end of the number.

For example, it would be 89126342536ll (those are Ls not 1s)

 Brian


On Wed, 16 Feb 2005 13:58:04 +0200, Victor <victor@xxxxxxxx> wrote:
> I have gcc version 3.4.1 compiled with long long support - but the
> result is the same.
> If I try A simple program like this:
> #include <stdio.h>
> #include <stdlib.h>
> int main(int argc, char **argv) {
>    long long int test;
>    test = 89126342536;
> }
> when I compile I get the following error:
> test.cpp: In function `int main(int, char**)':
> test.cpp:14: error: integer constant is too large for "long" type(long
> long seems to have no effect - it steel refers to simple long for some
> reason).
> 
> "gcc -v" output:
> Reading specs from /usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/specs
> Configured with: ../configure --prefix=/usr --libdir=/usr/lib
> --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info
> --enable-shared --enable-threads=posix --disable-checking
> --enable-long-long --enable-__cxa_atexit --enable-clocale=gnu
> --disable-libunwind-exceptions
> --enable-languages=c,c++,ada,f77,objc,java
> --host=i586-mandrake-linux-gnu --with-system-zlib
> Thread model: posix
> gcc version 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)
> 
> Brian Budge a scris:
> 
> >Ah, okay.  long int in most 32 bit system is the same as int.  Usually
> >there is a type called long long which is 64 bits on 32 bit systems.
> >
> >  Brian
> >
> >
> >On Wed, 16 Feb 2005 13:19:05 +0200, Victor <victor@xxxxxxxx> wrote:
> >
> >
> >>Thank you.
> >>The problem is that I don't know what type to declare the numeric variable.
> >>If I try A simple program like this:
> >>#include <stdio.h>
> >>#include <stdlib.h>
> >>int main(int argc, char **argv) {
> >>    long int test;
> >>    test = 89126342536;
> >>}
> >>when I compile I get the following error:
> >>test.cpp: In function `int main(int, char**)':
> >>test.cpp:14: error: integer constant is too large for "long" type
> >>
> >>I know I must replace the line "long int test" with something else, but
> >>I don't know with what.
> >>Thank you.
> >>
> >>Brian Budge a scris:
> >>
> >>
> >>
> >>>Hi Victor -
> >>>
> >>>The number you specify is larger than can be held in a 32 bit integer.
> >>>Use atoll instead.
> >>>
> >>> Brian
> >>>
> >>>
> >>>On Wed, 16 Feb 2005 12:53:50 +0200, Victor <victor@xxxxxxxx> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>I have this simple script:
> >>>>
> >>>>#include <stdio.h>
> >>>>#include <stdlib.h>
> >>>>#include <string.h>
> >>>>int main(int argc, char **argv) {
> >>>>   int test;
> >>>>   char *numar = "89126342536";
> >>>>   test = atoi(numar);
> >>>>   printf("Test: %d", test);
> >>>>}
> >>>>
> >>>>I want to convert the string numar to integer.
> >>>>But the result - when I run the script is :
> >>>>Test: 2147483647
> >>>>and I would expect:
> >>>>Test: 89126342536.
> >>>>
> >>>>It seems that the number is too big.
> >>>>How can I solve this problem.
> >>>>
> >>>>Thank you.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> 
>

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux