亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++中int類型按字節(jié)打印輸出的方法

 更新時間:2019年05月09日 08:30:15   作者:shell_nut  
這篇文章主要給大家介紹了關(guān)于C++中int類型按字節(jié)打印輸出的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

今天在項目編程中,遇到一個問題,u32類型的參數(shù),要賦值給一個u8 array[3],想用memcpy()函數(shù)進行賦值,由于類型大小不一致,一時不知道怎么做,經(jīng)過查找,得以解決。說明如下;

項目是在內(nèi)網(wǎng)中做,在查找過程中用自己筆記本做了一下實驗,vs2013版本。

類似主題是int類型按字節(jié)打印數(shù)據(jù),sizeof(int)實驗驗證后為4字節(jié),就分別打印出這4個字節(jié)中的數(shù)值。

先貼上代碼

#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;
}

輸出:


以上是正確代碼

以下對代碼做改變

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;

輸出:

輸出為什么是ffffff80呢?

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

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

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

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • C++類URL編碼和解碼使用技巧

    C++類URL編碼和解碼使用技巧

    在項目開發(fā)過程中,經(jīng)常會使用到c++ 的url編碼和解碼,本文將以此問題詳細(xì)介紹使用技巧,需要的朋友可以參考下
    2012-11-11
  • 一起來了解c語言的str函數(shù)

    一起來了解c語言的str函數(shù)

    這篇文章主要為大家詳細(xì)介紹了c語言的str函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++中兩種字符串定義方式和區(qū)別介紹

    C++中兩種字符串定義方式和區(qū)別介紹

    大家好,本篇文章主要講的是C++中兩種字符串定義方式和區(qū)別介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • C語言菜鳥基礎(chǔ)教程之自定義函數(shù)

    C語言菜鳥基礎(chǔ)教程之自定義函數(shù)

    自定義函數(shù): 必須直接或間接在main中調(diào)用,否則該自定義函數(shù)不會被執(zhí)行。 返回值類型 函數(shù)名(參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名...)
    2017-10-10
  • C++移除序列中連續(xù)重復(fù)的特定值示例代碼

    C++移除序列中連續(xù)重復(fù)的特定值示例代碼

    這篇文章主要給大家介紹了關(guān)于在C++中如何移除序列中連續(xù)重復(fù)的特定值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • C語言實現(xiàn) 數(shù)據(jù)類型占多少字節(jié)指針占多少字節(jié)

    C語言實現(xiàn) 數(shù)據(jù)類型占多少字節(jié)指針占多少字節(jié)

    這篇文章主要介紹了 C語言 數(shù)據(jù)類型占多少字節(jié)指針占多少字節(jié)的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • HDOJ 1443 約瑟夫環(huán)的最新應(yīng)用分析詳解

    HDOJ 1443 約瑟夫環(huán)的最新應(yīng)用分析詳解

    本篇文章是對HDOJ 1443 約瑟夫環(huán)的最新應(yīng)用進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 探討register關(guān)鍵字在c語言和c++中的差異

    探討register關(guān)鍵字在c語言和c++中的差異

    建議不要用register關(guān)鍵字定義全局變量,因為全局變量的生命周期是從執(zhí)行程序開始,一直到程序結(jié)束才會終止,而register變量可能會存放在cpu的寄存器中,如果在程序的整個生命周期內(nèi)都占用著寄存器的話,這是個相當(dāng)不好的舉措
    2013-10-10
  • 字符串的模式匹配詳解--BF算法與KMP算法

    字符串的模式匹配詳解--BF算法與KMP算法

    這篇文章記錄一下串里面的模式匹配,模式匹配,顧名思義就是給定一個被匹配的字符串,然后用一個字符串模式(模型)去匹配上面說的字符串,看后者是否在前者里面出現(xiàn)。常用的有2種算法可以實現(xiàn),下面我們來具體探討下
    2014-08-08
  • C++超詳細(xì)講解強制類型轉(zhuǎn)換

    C++超詳細(xì)講解強制類型轉(zhuǎn)換

    在C++語言中新增了四個關(guān)鍵字static_cast、const_cast、reinterpret_cast和dynamic_cast。這四個關(guān)鍵字都是用于強制類型轉(zhuǎn)換的
    2022-05-05

最新評論