Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: vulture - 17 Temmuz 2018, 18:02:41

Başlık: int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama
Gönderen: vulture - 17 Temmuz 2018, 18:02:41
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?
Başlık: Ynt: int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama
Gönderen: isa_olcer - 20 Ağustos 2018, 17:43:17
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]);
Başlık: Ynt: int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama
Gönderen: elektronart - 22 Ağustos 2018, 23:34:04
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
Başlık: Ynt: int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama
Gönderen: mir_as82 - 23 Ağustos 2018, 00:24:25
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

Başlık: Ynt: int türündeki verileri yan yana yazıp yeni bir int türünde değişken atama
Gönderen: kantirici - 23 Ağustos 2018, 21:58:45
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.