Decimális szám átváltása binárisra C nyelven
Na, a mai napom programozással telt. Hosszú idő óta újra. (Már miután felébredtem.) 7 feladatot csináltam meg, a legbüszkébb erre vagyok, ami decimális számokból csinál binárisat, legkevesebb 2 órát kotlottam a megoldásán. Előrebocsátom, hogy sokszor fingom nincs, mit miért csinál, de leellenőriztem egy internetes átváltó felületen, pontosan csinálja, amit csinál. Nagyon eredeti a program, használom is az "eredeti" változót benne, mert az első ciklusban a szám értéke leredukálódik 0-ra, ezért kell tudnom újra az eredeti bekért szám értékét. Az első ciklusban bekérek egy számot 16 és 31 között, majd kiíratom a 2-vel osztott szám maradékát, majd a számból kivonom a szám felét (érted?), abból levonom a 2-vel osztott maradékot. A ciklus lemegy 0-ig. Most kiírta fordítva a bináris számsort. De nekem nem fordítva kell. Ezért berakom ugyanezt az eljárást egy 1-től addig a számig futó ciklusba, ahányszor az előző ciklus lefutott. Ha az egyik ciklusszámláló egyenlő azzal a számmal, ami a másik ciklusszámláló kivonva abból a számból, ahányszor lefutott az előző ciklus, akkor kiíratom a számot (mármint a maradékot (,2-vel osztva)), ez egy bináris számsort fog adni, ami majdnem jó, de mégsem elég jó, mert elé kell rakni egy 1-est, és így már pontos értéket fog mutatni. (Az egyest azért kell elé rakni, mert minden szám 1-essel kezdődik, whatever, nem tudom.) A lényeg az, hogy pontos értéket fog mutatni. Kihűlve ízlés szerint tálaljuk.
#include <stdio.h>
main()
{
int szam, szamol, i, j, eredeti;
do{printf("Kerek egy szamot 16 es 31 kozott: ");
scanf("%d", &szam);
} while ((16>szam) || (szam>31));
szamol=0;
eredeti=szam;
do{ szamol=szamol+1;
printf("%d", szam % 2);
szam=szam-szam/2-szam%2;
} while (szam>0);
printf("\n");
printf("%d",1);
szam=eredeti;
for(i=1;i<szamol;i++)
{
szam=eredeti;
j=0;
do{ j=j+1;
if (j==szamol-i) printf("%d", szam % 2);
szam=szam-szam/2-szam%2;
} while (szam>0);
}
}
Deprecated: mb_strrpos(): Passing the encoding as third parameter is deprecated. Use an explicit zero offset in /home/yesokhu/madinhungary.org/inc/_ext/_url_rel2abs.php on line 157