C++'da Hex Değerlerini Yazdırma

C Da Hex Degerlerini Yazdirma



C++ programlamada onaltılık değerlerin yazdırılması yaygın bir gereksinimdir. İster bellek adresleriyle çalışın, ister Bitsel işlemleri gerçekleştirin, ister onaltılık veri gösterimleriyle uğraşın, onaltılık değerleri etkili bir şekilde görüntülemek için çeşitli yöntemleri kavramak önemlidir. Bu makale, C++'da onaltılık değerleri yazdırmak için çeşitli yöntem ve teknikleri inceleyerek bunların uygulamalarına ve kullanım örneklerine ışık tutmaktadır.

Hex Değerlerini Std::hex Kullanarak Yazdırma

C++'da onaltılık değerleri yazdırmanın basit bir yolu, başlığı tarafından sağlanan “std::hex” manipülatörünü kullanmaktır. Bu manipülatör, çıktı akışına, yazdırma sırasında tam sayı değerlerini onaltılık olarak yorumlaması talimatını verir. Sayılarla dolu bir hazine sandığınız olduğunu hayal edin. Ancak alışılagelmiş ondalık sistem yerine hepsi gizli onaltılık dille yazılmıştır. Bu kodları çözmek ve gerçek değerlerini ortaya çıkarmak için C++ “std::hex” adında yararlı bir araç sunar. kütüphanesindeki bu sihir numarası, çıktı akışınızı bir kod çözücü halkasına dönüştürür ve bu gizemli onaltılık sayıları anında tanıdık ondalık karşılıklarına dönüştürür.







#include
#include
int ana ( ) {
int ondalık Değer = 907 ;
std::cout << 'Onaltılı değer: ' << std::hex << ondalık değer << std::endl;
geri dönmek 0 ;
}


Bu örnekte 'std::hex' manipülatörü 'decimalValue' tamsayısını yazdırmadan önce 'std::cout' çıkış akışına uygulanır. Onaltılı değer yazdırıldıktan sonra akış normal davranışına geri döner. Bu kod, C++'daki 'std::hex' manipülatörünü kullanarak onaltılık bir değerin nasıl yazdırılacağını mükemmel bir şekilde gösterir. İşte kodun bir dökümü:



Başlıklar



: Konsolda yazdırma gibi temel giriş/çıkış için kullanılır ve çıkışı onaltılık olarak biçimlendirmek için 'std::hex' manipülatörünü sağlar.





Ana işlev

“int decimalValue = 907;” 'int' türündeki 'decimalValue' değişkenini bildirir ve ona 907'lik ondalık değer atar.



“std::cout << “Onaltılı değer: ” << std::hex << decimalValue << std::endl;” 'Onaltılı değer:' değerini ve ardından 'decimalValue'nun onaltılı gösterimini yazdırır.

'std::hex', çıkış akışına aşağıdaki değeri onaltılık olarak yorumlama talimatını verir. “decimalValue” değişkeni hex’e dönüştürülecek ondalık değeri içerir. “std::endl” yazdırmadan sonra yeni satır karakteri ekler. Son olarak, bu kod artık aşağıdaki çıktı snippet'inde görebileceğiniz gibi 'Onaltılık değer: 38B'yi yazdırıyor:

“%x” Format Belirleyicisini Kullanarak Hex Değerlerini Yazdırma

C programlama diline aşina olanlar için “printf” işlevi, C++ dilinde onaltılık değerleri kısaca yazdırır. C++ ve 'std::hex' yaklaşımını sunarken, 'printf' aynı sonuca ulaşmanın kısa ve doğrudan bir yolunu sunar.

#include
int ana ( ) {
int ondalık Değer = 1256 ;
baskı ( 'printf ile Onaltılı değer: %x \N ' , ondalık değer ) ;
geri dönmek 0 ;
}


Bu örnekte, “printf” fonksiyonu içindeki “%x” format belirticisi, karşılık gelen argümanın onaltılı olarak yazdırılması gerektiğini belirtir. Verilen kod, C++'da “printf” kullanarak onaltılık bir değer yazdırmanın mükemmel bir örneğidir. Şimdi parçalayalım:

Başlıklar

: Bu başlık, 'printf' işlevini ve diğer standart giriş/çıkış işlevlerini içerir. başlığı, C++ ile birlikte gelen kitaplık paketine dahildir. C dilinin kütüphanesindeki işlevselliği getirerek, C++'ın dahil edilmesi yoluyla orijinal olarak C'de bulunan klasik giriş ve çıkış tekniklerini kullanmasına olanak tanır.

Ana işlev

“int decimalValue = 1256;” 1256'nın ondalık değerini 'decimalValue' adlı bir tamsayı değişkenine bildirir ve atar. “printf(“printf ile Onaltılık değer: %x\n”, decimalValue);” içindeki “printf” ifadesi, biçimlendirilmiş çıktıyı yazdırmak için “printf” işlevini çağırır. “%x”, aşağıdaki argümanın küçük harfli onaltılık sayı olarak yazdırılması gerektiğini belirten “biçim belirticidir”. Son olarak “\n” yazdırdıktan sonra yeni satır karakteri ekler. Bu kod, aşağıdaki çıktı parçacığında görüldüğü gibi konsola 'printf ile Onaltılık değer 4e8'dir' çıktısını verir:

Hex Değerlerini Dolguyla Yazdırma

Onaltılı değerlerle, özellikle de bellek adresleriyle uğraşırken tutarlı bir genişlik veya dolgu genellikle arzu edilir. Bu, başlığı tarafından sağlanan “std::setw” manipülatörü kullanılarak gerçekleştirilebilir. Burada bir HEX değerinin dolguyla nasıl yazdırılacağına dair bir örnek verilmiştir. Bu program, üstbilgisi ve manipülatör yöntemlerini kullanarak C++'da dolgulu onaltılık bir değerin nasıl yazdırılacağını gösterir.

#include
#include
int ana ( ) {
int ondalık Değer = 47 ;
std::cout << 'Dolgulu Onaltılık değer: ' << std::setw ( 8 ) << std::hex << ondalık değer << std::endl;
geri dönmek 0 ;
}


Bu örnekte std::setw(8), onaltılık değerin minimum 8 karakter genişliğinde yazdırılmasını sağlar. Bu özellikle sütunlardaki değerleri veya bellek adreslerini hizalamak için kullanışlıdır.

Kodu kıralım ve her satırı tek tek anlayalım:

Başlıklar

: Yazdırma için 'std::cout' akışı gibi temel giriş/çıkış işlevlerini sağlar.

: Çıktı görünümünü değiştirmek için kullanılan 'std::setw' gibi biçimlendirme manipülatörlerini sunar.

Ana işlev

“int decimalValue = 47;” 47'nin ondalık değerini bildirir ve 'decimalValue' adlı bir tamsayı değişkenine atar.

“std::cout << “Dolgulu Onaltılık değer: ” << std::setw(8) << std::hex << decimalValue << std::endl;” ifadesi setw(8) dolgusu ile 47'nin onaltılı sayısını yazdırır. 'std::setw(8)', 'std::setw' manipülatörünü 8 bağımsız değişkeniyle uygular ve minimum 8 karakterlik çıktı genişliğini belirtir.

'std::hex', akışa bir sonraki değeri verilen örneklerden birinde açıklandığı gibi onaltılık olarak yorumlamasını söyleyen 'std::hex' manipülatörünü uygular. Aşağıdaki çıktı konsola yazdırılır:

Bayt Verisinin Hex Değerlerini Yazdırma

Bayt verileriyle çalışırken, her baytı iki basamaklı onaltılık değer olarak temsil etmek yaygın bir uygulamadır. Bu, genişliğin 2'ye ayarlandığından emin olunarak ve baştaki sıfırları doldurmak için 'std::setfill('0')' kullanılarak gerçekleştirilebilir. Aşağıda bayt verilerinin onaltılık değerlerinin yazdırılmasının nasıl yapılabileceğini anlamanıza yardımcı olacak bir örnek verilmiştir:

#include
#include
int ana ( ) {
imzasız karakter baytVeri = 0xAB;
std::cout << 'Bayt verilerinin Onaltılı gösterimi: '
<< std::setw ( 2 ) << std::setfill ( '0' ) << std::hex << static_cast < int > ( baytVeri )
<< std::endl;
geri dönmek 0 ;
}


Burada 'std::setw(2)' her baytın minimum 2 karakterlik genişlikle temsil edilmesini sağlar ve 'std::setfill('0')' genişliği doldurmak için baştaki sıfırların kullanılması gerektiğini belirtir.

Daha önce verilen bu program, C++'da onaltılık bir değerin belirli biçimlendirmeyle yazdırılmasına yönelik daha gelişmiş bir yaklaşımı göstermektedir. Daha iyi anlamak için konuyu parçalara ayıralım:

Başlıklar

: Yazdırma için 'std::cout' ve 'std::hex' gibi temel bir giriş/çıkış işlevi sağlar.

: Çıktı görünümünü değiştirmek için kullanılan 'std::setw' ve 'std::setfill' gibi biçimlendirme manipülatörlerini sunar.

Ana işlev

Ana fonksiyonda imzasız bir “byteData = 0xAB;” char, 'byteData' adlı imzasız bir char değişkenini bildiren ve buna onaltılık '0xAB' değerini atayan bir karakter tanımlanır. 'std::cout << 'Bayt verilerinin Onaltılı gösterimi: ':' ifadesi, çıkış akışını kullanarak mesajı konsola gönderir.

'<< std::setw(2) << std::setfill('0') << std::hex << static_cast (byteData) << std::endl;' deyim zinciri, çıktıyı biçimlendirmek için birden fazla manipülatör uygular.

std::setw(2): Minimum çıktı genişliğini 2 karaktere ayarlar.

std::setfill('0'): Minimum genişliğe ulaşmak için gereken tüm dolguların '0' karakteriyle doldurulması gerektiğini belirtir.

std::hex: Akışa bir sonraki değeri onaltılık olarak yorumlamasını söyler.

static_cast (byteData): İmzasız karakter verilerini onaltılık sayıya dönüştürmeden önce bir 'int'e aktarır. Bu teknik olarak gerekli değildir ancak bazı biçimlendirme seçenekleriyle tutarlılık sağlamak için kullanılabilir.

std::endl: Yazdırdıktan sonra yeni satır karakteri ekler.

Bu programın konsolda yazdırılan çıktısı aşağıdaki kod parçasında gösterilmektedir:

Çözüm

C++'ta onaltılık değerlerin yazdırılması, mevcut araçların anlaşılmasını ve özel gereksinimlere göre uygun yöntemin seçilmesini içerir. İster 'std::hex' manipülatörünü, ister 'printf' işlevini, ister dolgu ve baştaki sıfırlar için biçimlendirme araçlarının bir kombinasyonunu tercih edin, bu teknikleri sağlam bir şekilde kavramak herhangi bir C++ programcısı için çok önemlidir. Bu yöntemleri dikkatli bir şekilde uygulayarak, onaltılık değerlerinizin doğru ve görsel olarak çekici bir biçimde görüntülenmesini sağlayabilirsiniz; bu, C++ kodunuzun genel okunabilirliğine ve netliğine katkıda bulunur.