C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出

本文小編為大家詳細(xì)介紹“C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

十載的高密網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整高密建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“高密網(wǎng)站設(shè)計(jì)”,“高密網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

代碼如下:

#include<iostream>
using namespace std;

int main()
{
  int i = 128;
  
  cout << sizeof(int) << endl;

  unsigned char* cc = (unsigned char*)&i;

  for (int j = 0; j < 4; j++)
    printf("cc: %p \t *cc: %x\n", cc + j, *(cc + j));
  
  system("pause");
  return 0;
}

輸出:

C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出

以上是正確代碼

以下對(duì)代碼做改變

unsigned char* cc = (unsigned char*)&i;
改為
 char* cc = ( char*)&i;

 //代碼如下:
#include<iostream>
using namespace std;

int main()
{
  int i = 128;
  
  cout << sizeof(int) << endl;

   char* cc = ( char*)&i;

  for (int j = 0; j < 4; j++)
    printf("cc: %p \t *cc: %x\n", cc + j, *(cc + j));
  
  system("pause");
  return 0;

輸出:

C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出

輸出為什么是ffffff80呢?

char類型是有符號(hào)字符型變量還是無符號(hào)字符型變量,要看編譯器是怎么定義的,不能想當(dāng)然。char變量為一個(gè)字節(jié),8bit,sighed char表示的范圍是-128~127,(-128在內(nèi)存中二進(jìn)制表示為1000 0000,127在內(nèi)存中二進(jìn)制表示為0111 1111),unsighed char表示的范圍是0~255.

給 i 賦值128,十六進(jìn)制0x80,二進(jìn)制1000 0000,相當(dāng)于是給char變量賦值-128.

printf()函數(shù)的參數(shù)%x其含義為Unsigned hexadecimal integer;即輸出一個(gè)十六進(jìn)制的整型,而在代碼中,%x對(duì)應(yīng)的是char類型,所以此時(shí)printf()函數(shù)會(huì)將char類型隱式轉(zhuǎn)換為int類型。

對(duì)于int類型的對(duì)象,其值為-128,則其對(duì)應(yīng)的內(nèi)存值是0xFFFFFF80

所以,在printf()函數(shù)中,char類型隱式轉(zhuǎn)換成int類型后,輸出就會(huì)變成4字節(jié)的0xFFFFFF80

讀到這里,這篇“C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:C++中如何實(shí)現(xiàn)int類型按字節(jié)打印輸出
分享網(wǎng)址:http://bm7419.com/article20/phdsco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、云服務(wù)器網(wǎng)頁設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)