Advertisement
Guest User

atoi

a guest
Apr 26th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int atoi_shift(const char *p) {
  4.     int k = 0;
  5.     int sign = 1;
  6.  
  7.     if(p && p[0] == '-') {
  8.         sign = -1;
  9.         p++;
  10.     }
  11.  
  12.     while (*p) {
  13.         k = (k<<3)+(k<<1)+(*p)-'0';
  14.         p++;
  15.      }
  16.      return sign*k;
  17. }
  18.  
  19. int atoi_loop(const char *p)
  20. {
  21.     int k = 0;
  22.     int sign = 1;
  23.      
  24.     if (p[0] == '-')
  25.     {
  26.         sign = -1;  
  27.         p++;
  28.     }
  29.      
  30.     while(p) {
  31.         k = k*10 + (*p) - '0';
  32.     }
  33.    
  34.     return sign*k;
  35. }
  36.  
  37. int main() {
  38.     int a_l = atoi_loop("-1234");
  39.     int a_s = atoi_shift("-1234");
  40.  
  41.     std::cout << a_l << '\n' << a_s << '\n';
  42.  
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement