int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama

Başlatan vulture, 17 Temmuz 2018, 18:02:41

vulture

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?

isa_olcer

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]);

elektronart

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
Açık Elektronik

mir_as82

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


kantirici

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.