• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

asciiziffern eines strings zusammenzählen & quersumme ma

Status
Für weitere Antworten geschlossen.

Fätzminator

Neues Mitglied
asciiziffern eines strings zusammenzählen & quersumme ma

hallo zusammen

ich habe wieder einmal so eine einfach doofe frage ^^

ich habe einen string wie zb "test"...
jetzt will ich von jedem zeichen den ascii code nehmen...
von dem wiederum will cih die quersumme errechnen, bis diese zahl nur noch 2-stellig ist...

wie kann ich das am einfachsten bewerkestelligen?
hier ein bsp:
string = test
= 116 + 101 + 115 + 116
= 448
= 16 (quersumme)
= 16 (nur noch 2-stellig)

mfg, fätzminator
 
Werbung:
Code:
$str = 'test';

$l = strlen($str);
$s = 0;
for ($i = 0; $i < $l; $i++) $s += ord($str{$i});

while ($s > 100) {
	$t = 0;
	while ($s > 0) {
		$t += $s % 10;
		$s = $s / 10;
	}
	$s = $t;
}

echo '=> '.$s."\n";

iss jetzt nicht wirklich getestet, bei 'test' kommt aber 16 raus ;Jump
verbesserungsvorschläge sind jederzeit willkommen
 
zweistellig bekommst du es mit einer % 99 operation.
oder du wandelts es in hexadezimal um: dechex();

ACII wert : http://www.selfphp.de/funktionsreferenz/string_funktionen/ord.php
das musst du natürlich bei jedem zeichene einzeln machen und die werte in einem array speichern das arrray summierst du per scleife auf und wandelst due zahl in iene string und bentutz alle zeichen als zahlen und addierst diese weider....


:)
 
Werbung:
die ascii zeichen liegen auf dem spectrum von 0-255 das ist genau der breich welcher in hexdazimal durch 00-FF abgedeckt wird sprich du erhälst immer 2 stellige zahelne...
 
ja das weiss ich... (ich werd api :wink: )
abr ich will es ja nicht einfach abschneiden sondern erneut die quersumme ziehen... (die quersumme einer 10er reihe... und nicht einer 16er...)
 
Werbung:
Werbung:
ups, es muss
Code:
while ($s >= 100) {
heissen.

modulo 99 stimmt nicht ganz 111 % 99 = 12, die quersumme ist aber 3.
die schleife nimmt durch die modulo 10, bzw div 10 jeweils die letzte stelle und addiert die auf. quersumme bilden halt... :mrgreen:
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben