最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

今天在項目編程中,遇到一個問題,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類型是有符號字符型變量還是無符號字符型變量,要看編譯器是怎么定義的,不能想當然。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,相當于是給char變量賦值-128.

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

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

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

總結(jié)

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

相關(guān)文章

  • C語言結(jié)構(gòu)體(struct)的詳細講解

    C語言結(jié)構(gòu)體(struct)的詳細講解

    C語言中,結(jié)構(gòu)體類型屬于一種構(gòu)造類型(其他的構(gòu)造類型還有:數(shù)組類型,聯(lián)合類型),下面這篇文章主要給大家介紹了關(guān)于C語言結(jié)構(gòu)體(struct)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • C語言內(nèi)存函數(shù)的具體使用

    C語言內(nèi)存函數(shù)的具體使用

    本文介紹了C語言中幾個常用的內(nèi)存函數(shù),包括memcpy、memmove、memset、memcmp的使用方法及其模擬實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • 超詳細解析C++實現(xiàn)歸并排序算法

    超詳細解析C++實現(xiàn)歸并排序算法

    歸并排序是比較穩(wěn)定的排序方法。它的基本思想是把待排序的元素分解成兩個規(guī)模大致相等的子序列。本文將用C++實現(xiàn)這一排序算法,需要的可以參考一下
    2022-09-09
  • C語言超詳細講解文件的操作

    C語言超詳細講解文件的操作

    C語言文件操作的方法有很多,函數(shù)也有很多你知道哪些呢?下面是小編為大家?guī)淼腃語言文件操作的方法,歡迎閱讀
    2022-04-04
  • C語言中求解圖形的問題

    C語言中求解圖形的問題

    這篇文章主要介紹了C語言中求解圖形的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Visual Studio 2022卡死分析

    Visual Studio 2022卡死分析

    本文主要介紹了Visual Studio 2022卡死分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 老程序員教你一天時間完成C++俄羅斯方塊游戲

    老程序員教你一天時間完成C++俄羅斯方塊游戲

    俄羅斯方塊游戲大家應該非常熟悉,非常經(jīng)典的一款游戲,本文來詳細講解下俄羅斯方塊游戲的制作過程,趕緊來看下吧!希望能給你帶來幫助
    2021-08-08
  • C++實現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    C++實現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法

    這篇文章主要介紹了C++實現(xiàn)CreatThread函數(shù)主線程與工作線程交互的方法,是Windows應用程序設(shè)計中非常實用的方法,需要的朋友可以參考下
    2014-10-10
  • Linux vmstat命令實戰(zhàn)詳細解析

    Linux vmstat命令實戰(zhàn)詳細解析

    這個命令是我查看Linux/Unix最喜愛的命令,一個是Linux/Unix都支持,二是相比top,我可以看到整個機器的CPU,內(nèi)存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內(nèi)存使用率(使用場景不一樣)
    2013-09-09
  • Qt設(shè)計與實現(xiàn)軟鍵盤效果

    Qt設(shè)計與實現(xiàn)軟鍵盤效果

    這篇文章主要為大家詳細介紹了Qt設(shè)計與實現(xiàn)軟鍵盤效果的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11

最新評論

龙海市| 凤凰县| 田林县| 贵溪市| 塘沽区| 长宁区| 鱼台县| 宁南县| 北川| 汉沽区| 嵊州市| 贺州市| 虞城县| 龙山县| 犍为县| 巫溪县| 贵德县| 普宁市| 万载县| 广昌县| 广宗县| 昂仁县| 惠水县| 博罗县| 新蔡县| 灵石县| 宜君县| 金阳县| 仪陇县| 亳州市| 哈巴河县| 兰坪| 正安县| 德惠市| 普安县| 胶州市| 宁武县| 郧西县| 澄城县| 凉城县| 周宁县|