elimde 8 tane int değişkeni var. bunları yanyana ekleyip yeni bir int değişkenine atamak istiyorum.örnek olarak;
int a=1;
int b=2;
int c=7;
int d=9;
int e=8;
int f=3;
int g=5;
int h=4;
bu değişkenleri yan yana yazıp değeri yeni bir değişkene atamak istiyorum. yani sonuç;
int i=12798354 sayısına ulaşmak istiyorum.
nasıl yapabilirim?
bu şekilde istediğin değişkenleri "sayı" değişkeninin basamaklarına aktarıp istediğin sayıyı elde edebilirsin.
int sayı[8];
a=(sayı[8]);
b=(sayı[7]);
c=(sayı[6]);
d=(sayı[5]);
e=(sayı[4]);
f=(sayı[3]);
g=(sayı[2]);
h=(sayı[1]);
Kodu yazdığın yere göre dikkatli olan gerek. Mikrodenetleyicilerde int 2 byte ve 65K sınır iken PCde 4 bytetır ve 8 haneyi kaldırabilir.
Yapman gereken şey çok zor değil aslınsa
yeni değişkeni tanımlayıp sonra da sürekli 10 ile çarpıp yenisini eklemek: verdiğin örnekle biraz zor oluyor ama eğer bir arrayin içindelerse bir döngünün içinde kolayca yapabilirsin.
long yeni;
yeni = a;
yeni = yeni*10 + b;
yeni = yeni*10 + c;
yeni = yeni*10 + d;
........
yeni = yeni*10 + h
Bu 8 int değerin her biri 15(F yani) i geçmiyorsa bu durumda bunları hexadecimal olarakta tutabilirsin. İşaretsiz tanımlayıp range aralığını arttırabilirsin
Alıntı yapılan: elektronart - 22 Ağustos 2018, 23:34:04Kodu yazdığın yere göre dikkatli olan gerek. Mikrodenetleyicilerde int 2 byte ve 65K sınır iken PCde 4 bytetır ve 8 haneyi kaldırabilir.
Mikrodenetleyici platformuna ve derleyiciye göre int'in uzunluğu değişir. Pic 16-18 lerde 2 byte iken cortex-m'lerde 4 byte dır.
En iyisi stdint'i eklemek ve uint16_t veya uint32_t olarak tanım yapmak.
Ayrıca struct union yapısı tam istediğiniz işi yapıyor.