void reduce(int* m, int* n) { int a,b,c; a=*m; b=*n; // НОД a b - алгоритм Евклида do { c=a%b; a=b; b=c; } while (b>0); *m/=a; *n/=a; }
int main() { int m,n; cout<<"input m n "; cin>>m>>n; cout<<m<<"/"<<n<<" = "; reduce(&m,&n); if (n>1) cout<<m<<"/"<<n<<endl; else cout<<m<<endl; system("pause"); return 0; }
10001100₂ = 0*2⁰ + 0*2¹ + 1*2² + 1*2³ + 0*2⁴ + 0*2⁵ + 0*2⁶ + 1*2⁷ = 140₁₀
140₁₀ = 4*8⁰ + 1*8¹ + 2*8² = 214₈
140₁₀ = 12*16⁰ + 8*16¹ = 8C₁₆
253₈ = 3*8⁰ + 5*8¹ + 2*8² = 171₁₀
171₁₀ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ + 0*2⁴ + 1*2⁵ + 0*2⁶ + 1*2⁷ = 10101011₂
171₁₀ = 11*16⁰ + 10*16¹ = AB₁₆
154₁₀ = 0*2⁰ + 1*2¹ + 0*2² + 1*2³ + 1*2⁴ + 0*2⁵ + 0*2⁶ + 1*2⁷ = 10011010₂
154₁₀ = 2*8⁰ + 3*8¹ + 2*8² = 232₈
154₁₀ = 10*16⁰ + 9*16¹ = 9A₁₆
7B₁₆ = B*16⁰ + 7*16¹ = 123₁₀
123₁₀ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ + 1*2⁴ + 1*2⁵ + 1*2⁶ = 1111011₂
123₁₀ = 3*8⁰ + 7*8¹ + 1*8² = 173₈