|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
Stay one step ahead of the competition. Evaluate and give feedback
on some of the hottest web development tools on the market today.
Make your opinion heard! Click
Here
|
|
#1
|
|||
|
|||
|
strint to unsigned int conversion!!
hi!!
i want to convert a string to int.. but i guess the value is bit too long to be stored as int....so i want to store it as unsigned int...but cant figure out how to make this conversion.. #include <stdio.h> #include <string.h> int main() { int inbytes1; char string[50]="265695678"; printf("string %s\n", string); inbytes1 = atoi(string); printf("int: %d\n", inbytes1); } regards |
|
#2
|
||||
|
||||
|
I'm assuming that you're using a 16-bit compiler like Turbo-C. If this is the case, you can use atol() and convert it to a long value instead.
|
|
#3
|
||||
|
||||
|
Because the integer types have a fixed number of bits, they have fixed ranges. The number of bits assigned to an int is system dependent, which means that it could have a different number of bits on different systems. It looks like a short int is fixed at 16 bits and a long int at 32 bits, but I'm not sure that's really the case.
Since most of our work is with a 16-bit compiler, I'm used to an int being 16 bits long, such that a signed int's range is from –32,768 to 32,767 and an unsigned int is from 0 to 65,535. As you can see, your number is still beyond the range of the unsigned int. A long int (32-bit) ranges +/- 2.14 billion (+/- 2 G) or unsigned from 0 to 4.29 billion (4 G). Your number of 265 million will fit in a long int. The long int version of atoi() is atol(), which returns a long int value. I didn't find a atoul, but there is also a family of strtoul(), etc, functions which appear to do the same thing as atoi & atol, but I'm not familiar with them and don't know how they differ. Both atoi et al. and strtoi et al. appear to handle overflow the same way (trying to convert a number that exceeds the range of the data type); from the description of atoi: Quote:
Read the man/help page for the function you end up using for details. |
![]() |
| Viewing: Dev Shed Forums > Programming Languages > C Programming > strint to unsigned int conversion!! |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|