CHAR OLAN DEĞİŞKENİ NASIL 16 BİTLİK SAYI YAPARIZ?

Başlatan Murat Mert, 28 Kasım 2011, 21:37:29

Murat Mert

S.A.
Sn. Arkadaşlar "k "daki char olan "1234" rakamını nasıl bir değişken içinde " 1234" diye bir sayıya çevirebilirim?

Kolay gelsin.

#include <18F452.h>
#fuses HS
#use delay(clock=20000000)
#define use_portb_kbd TRUE
#define use_portb_lcd TRUE
#include "4X20_lcd.c"
#include "kbd.c"

void main() {
   char k;
   lcd_init();
   kbd_init();
   port_b_pullups(true);
   
   lcd_putc("\fLCD HAZIR...\n");

   while (TRUE) {
      k=kbd_getc();
      if(k!=0){
        if(k=='*'){
        lcd_gotoxy(1,3);
        lcd_putc("LCD siliniyor.");
        delay_ms(1000);
          lcd_putc('\f');
          }
        else{
          lcd_putc(k);
          }
      }     
   }
}


mert07

systran

bunu dener misin?
int sayi; 
char kr='z'; 
sayi=(int) kr;

fatihinanc

Bunun için C'nin standart fonksiyonlarından olan atoi() fonksiyonunu kullanabilirsiniz. Forumda "atoi" diye aratırsanız birçok sonuç çıkıyor.
Aşağıda nasıl kullanıldığına dair bir örnek de verilmiş.

Bir de char olarak tanımladığınız k değişkenine bir seferde "1234" verisini giremezsiniz. Bu 4 byte yapar. char bir değişkene, her seferinde ancak 1 byte yani 1 karakter girebilirsiniz.
Bu yüzden k değişkenini aşağıdaki örnekteki gibi dizi şeklinde tanımlamanız gerekir.

char string[10];
int x;

strcpy(string,"123");
x = atoi(string);
// x is now 123

https://www.picproje.org/index.php/topic,5418.msg32005.html#msg32005

Not: Bunun için projenize atoi() fonksiyonun dahil oluduğu  #include <stdio.h> satırını eklemeniz gerekir.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

Murat Mert

S.A.
Sn. Fatih çok teşekkür ederim nasıl bir yol izleneceğini bilmiyordum verdiğiğniz komutu helpte inceledim floatlar için bile varmış tekrar teşekkür ederim .Kolay gelsin.
mert07

Murat Mert

kodu eklemeyi unutmuşum  :(
yapacak arkadaşlar için  :D

#include <18F452.h>
#fuses HS
#use delay(clock=20000000)
#include "4X20_lcd.c"
#INCLUDE <stdlib.h>
void main() {  
  char string [10];
  int16 x;
   lcd_init();
   
   
   lcd_putc("\fLCD HAZIR...\n");

   while (TRUE) {
   strcpy (string, "555");
   x = atol(string);

          lcd_gotoxy(1,2);
          printf(lcd_putc " kar: %s",string);
          lcd_gotoxy(1,4);
          printf(lcd_putc " sayı: %ld",x);
       
          }
           
}
mert07