int main(int argc,char** argv) { int n; while(scanf("%d",&n)!=EOF) { printf("%d\n",dec2oct(n)); } return 0; }
int main_2 (int argc, const char * argv[]) { int decimal = 12785; dec2bin(decimal); dec2oct(decimal); dec2hexa(decimal); return 0; }
void itob(int n, char s[], int b) { switch (b) { case 2: dec2bin(n,s); printf("%s\n",s); break; case 8: dec2oct(n,s); reverse(s); printf("%s\n",s); break; case 10: printf("%d\n",n); break; case 16: dec2hex(n,s); reverse(s); printf("%s\n",s); break; default: break; } }
int dec2oct(int dec){ int ret = 0; if(dec != 0) ret = dec2oct(dec/8); return ret*10 + dec%8; }
void calculate_checksum(FILE_HEADER* header) { int sum = 0; char buffer[8]; int unit[15] = { NAME_S, MODE_S, UID_S, GID_S, SIZE_S, MTIME_S, TYPEFLAG_S, LINKNAME_S, MAGIC_S, VERSION_S, UNAME_S, GNAME_S, DEVMAJOR_S, DEVMINOR_S, PREFIX_S }; int i; int j = -1; loop: i = 0; j++; while(i < unit[j]) { switch(j) { case 0: sum += (int)header->name[i++]; break; case 1: sum += (int)header->mode[i++]; break; case 2: sum += (int)header->uid[i++]; break; case 3: sum += (int)header->gid[i++]; break; case 4: sum += (int)header->size[i++]; break; case 5: sum += (int)header->mtime[i++]; break; case 6: sum += (int)header->typeflag[i++]; break; case 7: sum += (int)header->linkname[i++]; break; case 8: sum += (int)header->magic[i++]; break; case 9: sum += (int)header->version[i++]; break; case 10: sum += (int)header->uname[i++]; break; case 11: sum += (int)header->gname[i++]; break; case 12: sum += (int)header->devmajor[i++]; break; case 13: sum += (int)header->devminor[i++]; break; case 14: sum += (int)header->prefix[i++]; break; } } if(j != 14) goto loop; sprintf(buffer, "%d", sum); sprintf(buffer, "%lld", dec2oct(buffer)); header->cksum[0] = '0'; header->cksum[1] = buffer[0]; header->cksum[2] = buffer[1]; header->cksum[3] = buffer[2]; header->cksum[4] = buffer[3]; header->cksum[5] = buffer[4]; header->cksum[6] = '\0'; header->cksum[7] = ' '; }