Re: IP- Nummer
Christoph Müller wrote:
> Am Sam, 2003-08-09 um 08.24 schrieb Markus Raab:
>
>> [2] 1111111000000000000000000000001
>> [3] 12111111022002202002
>> [4] 1333000000000001
>> [5] 13330430101213
>> [6] 551232233345
> <schnip>...</schnip>
>> [95] QFEX
>> [96] P8Sax
>> [97] O6o7{
>> [98] N9E\
>> [99] MHK
>
> Gibt es ein Programm was eine Zahl zu einer beliebigen Basis
> geschriben darstellen kann - oder ist das alles im Kopf ausgrerechnet?
[0] hab ich für obige Ausgabe verwendet
mfg Markus
[0]
/*Author: Markus Raab
Lizenz: GPL v2*/
#include <stdio.h>
#include <string.h>
/**
* Converts an in to any base
* Returns NULL if an error accours*/
char * baseconvert (char * Store, // Place to store the Solution
long long Number, // Number to Convert
long long Base // Basis to convert to
)
{
long long temp; // Temporäre Variablen
long long i; // Zählvariablen
long long length; // Länge der Zeichenkette
if (Base < 2) // nicht möglich
return NULL;
// generiere String
i = 0;
while (Number > 0)
{
temp = Number % Base;
if (temp < 10)
temp += '0';
else temp += 'A' - 10;
Store[i] = temp;
Number /= Base;
i++;
// if (i > 998)
// return NULL; // Fehler!
}
Store[i] = '\0';
length = strlen(Store);
// String umdrehen
for (i=0; i < ((length+1) / 2); i++)
{
temp = Store[i];
Store[i] = Store[length - i - 1];
Store[length - i - 1] = temp;
}
// Store [length - i] = '\0';
// printf ("%s\n",Store);
return Store;
}
int main()
{
long long Zahl; // Zum Einlesen einer Zahl
long long Basis; // Zum Einlesen der Basis
char Platz [100000];
long long i;
Zahl = 2130706433;
for (i=2; i<100; i++)
{
printf ("[%d]\t",i);
printf ("%s\n",
baseconvert (Platz, Zahl,i));
}
return 0;
}
--
Linux, the choice | Demokratie ist Diskussion. -- Th. G.
of a GNU generation -o) | Masaryk
Kernel 2.4.21 /\ |
on a i686 _\_v |
Reply to: