再帰的手続きについて

こんにちは、Habrolyudi!



再帰的な手続きの楽しさについてです。





私たちが知っているように、関数は引数を取り、それらに応じて値を返します。 通常、形式はy = f(x1、... xn)です。

しかし、彼女は副作用を犯すべきではありません。 この場合、プロシージャと呼ばれるためです。

手順は次のようになります。



Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  1. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  2. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  3. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  4. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  5. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









  6. Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }









Copy Source | Copy HTML void someProc ( x1,...xn ) { doDomething1(); ... doSomethingN(); }













つまり、いくつかの手順に従うだけです。 引数や戻り値がなくてもうまくいくことができます。



関数本体で関数自体への呼び出し(再帰)を整理する場合、原則として、

中間計算には戻り値を使用します。 たとえば、階乗を計算したり、リストを処理したりします。



階乗の不快な例ですが、説明のために必要です:



Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  1. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  2. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  3. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  4. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  5. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









  6. Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }









Copy Source | Copy HTML int fac( n ) { if( n == 0 ) return 1 ; return n * fac( n-1 ); }













例はCで提供されていますが、純粋に機能的なアプローチで作成されています。



しかし、再帰的な手順は何をもたらすことができますか? 彼女には非常に優れた特徴があります。つまり、自分を呼ぶ前と後の空間です。

さらに、AFTERは、再帰を終了する条件(単純な場合)が満たされた時点で初めて正確に実行されます。



Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  1. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  2. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  3. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  4. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  5. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









  6. Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }









Copy Source | Copy HTML void recProc( .... ) { // recProc( ... ); // - , }













つまり、再帰的手順は、最初にねじれた後、元の位置でねじられていないばねと比較できます。

例で説明します。 タスクは、ループを使用せずに0からNまでの数字を印刷することだとしましょう。



手順は次のとおりです。



Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  1. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  2. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  3. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  4. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  5. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  6. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  7. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









  8. Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }









Copy Source | Copy HTML void cnt( int i ) { if( i ) { // printf("%d\n",i); // cnt( i-1 ); } printf( "%d\n",i ); // }













出力はその中に示されます-iがゼロになる場合。 引数を1つ減らして呼び出されるたびに。 彼女がゼロで志願するとすぐに、私は印刷します。 そして出口。 しかし、それ自体と前の反復で何かを残します。

その結果、0から指定された引数までの数字の出力を取得します。 ばねが引きずられて開きます。 私たちは解散の過程を目撃しています。



入力する前にコメントを外して行のコメントを解除すると、カウントダウンが発生します。 すべてのコメントを解除すると、回文が表示されます。 まず、降順(ねじれ)、次に増加(解散)。



この機能を見つけることができ、より便利なアプリケーションです。 たとえば、数値を文字列に変換するタスクを考えてみましょう。 この方法は、番号を構成する番号を順番に取得し、それらを符号に変換し、それらからすでに行を作成するという事実にあります。



たとえば、10進法の496は次のように分解されます。

496%10(ベースの除算の残りを取る)= 6

49%10(前の部門の残りを分割)= 9

4%10 = 4



この方法には2つの欠点があります。

1.最後から数字を取得します

2.数字の長さはわかりません



KerniganとRichieはこのソリューションを提案しました。



Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  1. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  2. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  3. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  4. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  5. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  6. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  7. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  8. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  9. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  10. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  11. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  12. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  13. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









  14. Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }









Copy Source | Copy HTML void itoa( int n, char s[] ) { int i , sign; if ( (sign = n ) < 0 ) /* */ n = -n; /* n */ i = 0 ; do { /* */ s[ i ++] = n % 10 + '0' ; /* */ } while ( (n /= 10 ) > 0 ); /* */ if ( sign < 0 ) s[ i ++] = '-' ; s[ i ] = '\0' ; reverse( s ); }













つまり、行を後方に並べてから、reverse関数を使用して裏返します。 「額」と呼ばれ、疑問を残す決定。

たとえば、行ごとに割り当てられるメモリ量。 unningな創業者の父親は、これを回避し、既に定義された配列にデータを書き込むことを選択しました。

また、変換後にすべての行を切り替えることは、面倒ではありません。 そのような呼び出しは非常に頻繁であり、これが間違いなく生産性に影響するためです。



これは、再帰的な手順が助けになる場所です。 彼女は変身することができます

文字列形式の10進数、16進数、2進数、8進数。



これは次のようなものです。



Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  1. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  2. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  3. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  4. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  5. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  6. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  7. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  8. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  9. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  10. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  11. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  12. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  13. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  14. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  15. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  16. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  17. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  18. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  19. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  20. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  21. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  22. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  23. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  24. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  25. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  26. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  27. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  28. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  29. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  30. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  31. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  32. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  33. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  34. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  35. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  36. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  37. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  38. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  39. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  40. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  41. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  42. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  43. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  44. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  45. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  46. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  47. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  48. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









  49. Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }









Copy Source | Copy HTML #include <stdio.h> #include <stdlib.h> #include <assert.h> #define DEC 0 #define OCT 1 #define HEX 2 #define BIN 3 char *uitoa( int a,int r ); int main() { int num = 7654894 ; int e_num = 0x4E35FF; int b_num = 0b1110011; int o_num = 077432 ; printf( "%s\n",uitoa(e_num,HEX )); printf( "%s\n",uitoa(b_num,BIN )); printf( "%s\n",uitoa(o_num,OCT )); } char *uitoa( int a,int r ) { /* <br/> * <br/> * <br/> * <br/> */ static int szmem = 0 ; // static char *mas = 0 ; // static char *bgmas = 0 ; // char numb [] = "0123456789ABCDEF" ; // 0 - '0', 15 - 'F' int dig[] ={ 10 , 8 , 16 , 2 }; // if( a == 0 ) { if( szmem == 0 ) { // 0 // 2 sizeof(char), 0 ( 0) mas = malloc( 2 * sizeof(char ) ); assert( mas ); *mas = '0' ;*( mas + 1 ) = 0 ; return mas; // } /* , szmem <br/> * a 0 ( ) <br/> * szmem + sizeof(char) 0 <br/> * <br/> */ bgmas = mas = malloc( szmem * sizeof(char ) + size of( char ) ); assert( mas ); *( mas+szmem ) = ( char ) 0 ; }else { /* . a!=0 <br/> * <br/> * <br/> * a <br/> */ szmem++; uitoa( a / dig[r],r ); /* <br/> * , <br/> * , <br/> * . <br/> * <br/> * : , <br/> * "" . <br/> * "" <br/> * , . <br/> * <br/> * <br/> * mas , <br/> * . <br/> */ *mas++ = numb [ a % dig[r]]; } szmem = 0 ; return bgmas; }













プロシージャは、メモリを割り当て、それへのポインタを返します。 そのため、回線を受け取って作業を終えたら、メモリリークを避けるためにメモリを解放する必要があります。



この記事が再帰の理解に役立つことを願っています。




All Articles