aboutsummaryrefslogtreecommitdiff
path: root/tests/sysy_lvX/decbinoct.sy
blob: 8f89adffce91957c11021fd058f40a16941add27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
int main(){
    int n = getint();
    int nb = n;
    int no = n;
    int nh = n;
    int binlen = 0;
    int octlen = 0;
    int hexlen = 0;
    int bin[32]={};
    int oct[32]={};
    int hex[32]={};
    while(nb > 0){
        int bd = nb % 2;
        bin[binlen] = bd;
        binlen = binlen + 1;
        nb = nb / 2;
    }
    while(binlen > 0){
        binlen = binlen - 1;
        putint(bin[binlen]);
    }
    putch(32);
    while(no > 0){
        int od = no % 8;
        oct[octlen] = od;
        octlen = octlen + 1;
        no = no / 8;
    }
    while(octlen > 0){
        octlen = octlen - 1;
        putint(oct[octlen]);
    }
    putch(32);
    while(nh > 0){
        int hd = nh % 16;
        hex[hexlen] = hd;
        hexlen = hexlen + 1;
        nh = nh / 16;
    }
    while(hexlen > 0){
        hexlen = hexlen - 1;
        int hd = hex[hexlen];
        if(hd < 10){
            putch(hd+48);
        }else{
            putch(hd-10+65);
        }
    }
    return 0;
}