關(guān)于C++中數(shù)據(jù)16進制輸出的方法
在我們進行串口編譯時,往往要用到串口數(shù)據(jù),串口數(shù)據(jù)多是16進制的0x16表示。在運算過程中,我們得到的數(shù)據(jù)往往是10進制,那么怎么將10進制的數(shù)據(jù)轉(zhuǎn)換成16進制呢?我在網(wǎng)上搜了很多種方法,最后在我導(dǎo)師的建議下使用了一種最最簡單的方法,供大家參考。
比如我們得到一個數(shù)據(jù):
double b = 123456789.987;
因為我要使用的是其整數(shù)部分,所以對w進行數(shù)據(jù)轉(zhuǎn)換:
__int64 B = __int64(b);
我們就得到了64位整型的w1,接下來我們要將w1以0x16進制的形式插入到一個數(shù)組中:
unsigned char A[46] = { 0x12, 0xAB, 0x34, 0xCD};
因為,B是以16進制儲存在電腦里的,所以我們采用直接移位的方式,進行插入,比如我要將B以4個字節(jié)的形式插入到A后:
A[4] = (B >> 24) & 0xFF; A[5] = (B >> 16) & 0xFF; A[6] = (B >> 8) & 0xFF; A[7] = (B >> 0) & 0xFF;
整體代碼如下:
#include<stdio.h> int main() { double b = 123456789.987; __int64 B = __int64(b); unsigned char A[46] = { 0x12, 0xAB, 0x34, 0xCD }; A[4] = (B >> 24) & 0xFF; A[5] = (B >> 16) & 0xFF; A[6] = (B >> 8) & 0xFF; A[7] = (B >> 0) & 0xFF; for (int i = 0; i < 8; i++) { printf("%02X ", A[i]); } return 0; }
運行結(jié)果如下:
到此這篇關(guān)于關(guān)于C++中數(shù)據(jù)16進制輸出的方法的文章就介紹到這了,更多相關(guān)C++ 16進制輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言數(shù)據(jù)結(jié)構(gòu)之二叉樹的非遞歸后序遍歷算法
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之二叉樹的非遞歸后序遍歷算法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10C語言開發(fā)實現(xiàn)通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言開發(fā)實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08c語言中的局部跳轉(zhuǎn)及全局跳轉(zhuǎn)功能
本文介紹了C語言中的goto語句,以及如何使用setjmp和longjmp實現(xiàn)跨函數(shù)的跳轉(zhuǎn),詳細(xì)講解了setjmp和longjmp的使用方法和注意事項,以及使用這種全局跳轉(zhuǎn)后變量狀態(tài)的不確定性,感興趣的朋友一起看看吧2024-09-09統(tǒng)計C語言二叉樹中葉子結(jié)點個數(shù)
這篇文章主要介紹的是統(tǒng)計C語言二叉樹中葉子結(jié)點個數(shù),文章以C語言二叉樹中葉子結(jié)點為基礎(chǔ)分享一個簡單小栗子講解,具有一定的知識參考價值,需要的小伙伴可以參考一下2022-02-02