Kody źródłowe/Zamiana liczb z systemu dziesiętnego na dowolny
Wygląd
Pascal
[edytuj]program dec2p;
const
cyfra:string='0123456789ABCDEF';
var
wynik:string;
p,n:integer;
begin
wynik:='';
writeln('Podaj liczbe');
readln(n);
writeln('Podaj podstawe systemu na ktory zamienic');
readln(p);
repeat
wynik:=cyfra[n mod p+1]+wynik;
n:=n div p;
until n=0;
writeln(wynik);
readln;
end.
ANSI C
[edytuj]Nagłówek do języka ANSI C przeliczjący system decymalny na dowolny ;) (numsys.h) Coded by MS
#define LENGTH 64
void changens(long, int);
void changens(long n, int DESTNUMSYS) {
long newnum[LENGTH], zerocount = 0;
for(int i = LENGTH - 1; i >= 0; i--) {
newnum[i] = n % DESTNUMSYS;
n /= DESTNUMSYS;
}
for(int j = 0; j < LENGTH; j++) {
if(newnum[j] == 0) zerocount++;
else break;
}
if(DESTNUMSYS == 16) printf("0x");
for(int k = zerocount; k < LENGTH; k++) {
if(newnum[k] >= 10) printf("%c", newnum[k] + 55);
else printf("%d", newnum[k]);
}
printf(" (%d)", DESTNUMSYS);
}
ANSI C
[edytuj]Przykład użycia powyższego nagłówka jeśli nazwiemy go: numsys.h Coded by MS
#include <stdio.h>
#include "numsys.h"
int main(void) {
int liczba;
printf("\nPodaj liczbe do zamiany na systemy liczbowe od dwojkowego do dwudziestkowego: ");
scanf("%d",&liczba);
for(int i = 2; i <= 20; i++) {
printf("\n%d (10) = ",liczba);
changens(liczba, i);
}
printf("\n\n");
return 0;
}