2014-11-29 30 views
7

Onaltılı kullanarak bir sayaç oluşturmaya çalışıyorum, bunun kolayca ondalık sayılarla yapılabilir olduğunu biliyorum, ancak bunu hex olarak yapmak mümkün mü, yoksa aralıkta aynı mı? ?nasıl arttırılır/azalır C onaltılı değeri C

böyle mi gidecek?

myhex = 0x00; 

myhex++; 

Ya da tamamen farklı bir şekilde mi yapılacak?

Neden onaltılık nedenini soruyorsunuz, çünkü bu bir MCU içindir ve benim için MCU'nun IO'sunu kontrol etmenin en iyi yolu onaltılık bir yöntemdir.

+4

Bir değişken bir "onaltılık sayı" içermiyor, bu sadece * bir numarası *. – usr2564301

+0

Netleştirmek için: hex, bir değerin sadece bir gösterimidir. Böylece onluk değerler ile tam olarak aynı olan hex değerleri ile çalışabilirsiniz (temel 10.) –

+0

Bu değerli bilgiler için teşekkür ederim. :) – magicianiam

cevap

7

Evet sen number, octal veya decimalhex ise hiç fark etmez ki bunu görecek denemek eğer! Örnek olarak

:

#include <stdio.h> 

int main() { 

    int myhex = 0x07; 
    int myOct = 07; 
    int myDec = 7; 

    printf("Before increment:\n"); 
    printf("Hex: %x\n", myhex); 
    printf("Oct: %o\n", myOct); 
    printf("Dec: %d\n", myDec); 

    myhex++; 
    myOct++; 
    myDec++; 

    printf("After increment:\n"); 
    printf("Hex: %x\n", myhex); 
    printf("Oct: %o\n", myOct); 
    printf("Dec: %d\n", myDec); 


    return 0; 

} 

Çıktı:

Before increment: 
Hex: 7 
Oct: 7 
Dec: 7 

After increment: 
Hex: 8 
Oct: 10 
Dec: 8 
+1

Teşekkür ederiz! Daha önce hiç bu kadar C değerinde hex kullanmamıştım ve her zaman artışın sadece ikili veya hex için değil ondalık değerler için geçerli olduğunu varsaydım. :) – magicianiam

+1

@magicianIam Hoş Geldiniz! İyi günler: D (BTW: cevabımı daha iyi bir örnekle güncelledik!) – Rizier123