Wandlung eines Integers in ein Array

Antworten
Nachricht
Autor
Herbert Maschke

Wandlung eines Integers in ein Array

#1 Beitrag von Herbert Maschke » 05. Feb 2003 11:50

Hallo. Ich hab einen Integer, beispielsweise x = 37.
Nun moechte ich daraus ein Array machen das 32 Zeichen lang ist und in
dem dann 3 7 0 0 0 0 0 .... steht
wie realisiere ich das?
thx

rattengift

Re: Wandlung eines Integers in ein Array

#2 Beitrag von rattengift » 05. Feb 2003 23:27

> Nun moechte ich daraus ein Array machen das 32 Zeichen lang ist

einen array von integers oder einen string?
falls integers: die zahl soll jeweils linksbündig sein, oder? also 370000..., 374400...?

Berni

Re: Wandlung eines Integers in ein Array

#3 Beitrag von Berni » 06. Feb 2003 8:37

Wird der volle Integerbereich verwendet, oder gibt es irgendwelche Einschränkungen? Welches Ziel wird verfolgt?

rattengift

Re: Wandlung eines Integers in ein Array

#4 Beitrag von rattengift » 06. Feb 2003 9:09

sollen auch negative zahlen berücksichtigt werden?
wie du siehst reichen deine angaben nicht aus, um die frage zu beantworten.

hier trotzdem mal einen lösungsansatz für einen bestimmten fall (nämlich nichtnegative integers):<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">int n = 37;
int a [32];
int len;

memset (a, 0, sizeof a / sizeof a[0]);

if (n > 0) // nur dann ist log definiert
{
len = 1 + (int) log10 ((double) n); // anzahl ziffern

while (len--) // für alle ziffern 0..len-1 (aber rückwärts)
{
a [len] = n % 10; // rechteste ziffer im array ablegen...
n /= 10; // ...und aus n rechts hinausschieben
}
}</font><hr></pre></blockquote>

rattengift

Re: Wandlung eines Integers in ein Array

#5 Beitrag von rattengift » 08. Feb 2003 21:23

ich hab den code natürlich nicht getestet, bevor ich ihn gepostet habe. inzwischen hab ichs aber getestet. die sache mit dem memset ist natürlich falsch (oder: nur "teilweise" richtig). aber initialisieren mit memset ist sowieso mist, besser also ein loop.<font face="Courier New"> ( for (j=0; j < sizeof a / sizeof a[0]; j++) a[j]=0; )</font><!--fixed-->

naja, herbert scheints ja sowieso nicht mehr zu interessieren, aber ich wollte den fehler halt trotzdem nicht so stehen lassen.

Antworten