Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #include <string.h>
  2. #include <stdio.h>
  3.  
  4. unsigned char hdigit(unsigned char c);
  5.  
  6. int checkArray(char* hx, int length){
  7.     int i;
  8.     for (i = 0; hx[i] != '\0'; i++);
  9.     if (i > length){
  10.         return -1;    
  11.     }
  12.     return 0;
  13. }
  14.  
  15. int getSign(unsigned char* c)
  16. {
  17.     const char govno[5] = "7FFF\0";
  18.     if (strcmp(c, govno) > 0)
  19.     {
  20.        return 1;
  21.     }
  22.     else
  23.     {
  24.        return 0;
  25.     }  
  26. }
  27.  
  28. signed getKakoytoNumber(char* hx)
  29. {
  30.     int s = 0, p = 0;
  31.     char * cpi = hx;
  32.     while( *++cpi );
  33.     while( hx != cpi-- )
  34.     {
  35.         s += hdigit(*cpi) << p;
  36.         p += 4;
  37.     }
  38.    
  39.     return s - 65535;
  40. }
  41. //----edited-------------------------------
  42. int power(int num, int count){
  43.     int oldNum=num;
  44.     for (int i=0; i<count; i++){
  45.     num*=oldnum;
  46.     }
  47.     if (count==0){
  48.          num=1;
  49.     }
  50.     return num;
  51. }
  52.  
  53. double getSignedNumber(char* hx){
  54. int i=0;
  55.     if(hx[i]=='1'){
  56.     for (i=1; i<strlen(hx); i++){
  57.        
  58.         switch(hx[i]){
  59.        
  60.         case '1':
  61.         hx[i]='0';
  62.         break;
  63.         case '0':
  64.         hx[i]='1';
  65.         break;
  66.         }
  67.     }
  68.     }
  69.     return hx;
  70. }
  71.  
  72. int getNumFrom2(char* hx){
  73.     int i, j, num;
  74.     i=0;
  75.     j=0;
  76.     if (hx[i]=='1'){
  77.     for (int i=strlen(hx); i>1; i--){
  78.         switch(hx[i]){
  79.         case '1':
  80.         num+=power(2, j)*1;
  81.         break;
  82.         case '0':
  83.         num+=power(2, j)*0;
  84.         break;
  85.         }
  86.         j++;
  87.     }
  88.     num*=(-1);
  89.     } else{
  90.     for (int i=strlen(hx); i>1; i--){
  91.         switch(hx[i]){
  92.         case '1':
  93.         num+=power(2, j)*1;
  94.         break;
  95.         case '0':
  96.         num+=power(2, j)*0;
  97.         break;
  98.         }
  99.         j++;
  100.     }
  101.     }
  102.     return num;
  103. }
  104. //------------------------------------------
  105. unsigned char hdigit(unsigned char c)
  106. {
  107.     return (c >= 'A' ?  c - 'A' + 10 : c - '0');
  108. }
  109.  
  110. unsigned getKakoytoUnsignedNumber(char* hx)
  111. {
  112.     unsigned s = 0, p = 0;
  113.     char * cpi = hx;
  114.     while( *++cpi );
  115.     while( hx != cpi-- )
  116.     {
  117.         s += hdigit(*cpi) << p;
  118.         p += 4;
  119.     }
  120.    
  121.     return (unsigned)s;
  122. }
  123.  
  124. int HEX_TO_DEC(char* hx)
  125. {
  126.     //if (checkArray (hx, length) == -1){
  127.         //printf("Error! Max. %d chars!", length);
  128.         //printf("\n");
  129.         //exit(1);
  130.     //}
  131.     return getKakoytoNumber(hx);
  132.    
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement