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,
#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
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++
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
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,
#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
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
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
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
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.