日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++Endian具體操作方法講解

C++編程語言對于編程人員來說是非常重要的一個計算機應(yīng)用語言。我們今天會在這篇文章中為大家詳細(xì)介紹一下C++ Endian的基本應(yīng)用方式,希望朋友們可以從中對C++編程語言有一個深刻的了解。#t#

在潘集等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,潘集網(wǎng)站建設(shè)費用合理。

最近寫了一段代碼來讀取和輸出一個文件.這個文件的標(biāo)準(zhǔn)規(guī)范里面同時使用了LittleEndian和BigEndian.***次在C++中接觸這個問題.所以需要做一下工作:

1.判斷當(dāng)前CPU使用哪種C++ Endian?

2.如果當(dāng)前數(shù)據(jù)的Endian和當(dāng)前CPU相反,如何裝換?

代碼相當(dāng)直觀:

1.判斷CPU的C++ Endian:

 
 
 
  1. union {  
  2. short s;  
  3. char c[sizeof(short)];  
  4. } un;  
  5. un.s = 0x0102;  
  6. _isLittleEnd = (un.c[0] == 0x2); 

 

***的_isLittleEnd是一個bool變量用來保存判定的結(jié)果:

2.如何把一個相反C++ Endian的數(shù)據(jù)轉(zhuǎn)換過來:

 
 
 
  1. void Helper::swap(char ch[], int count) {  
  2. int size = count / 2;  
  3. int max = count - 1;  
  4. for (int i = 0; i < size; i++) {  
  5. char t = ch[i];  
  6. ch[i] = ch[max - i];  
  7. ch[max - i] = t;  

其實是將char[]數(shù)組就地反轉(zhuǎn).

3.如何把short/int/double等數(shù)據(jù)反轉(zhuǎn)過來呢:

以int 為例的代碼如下:

 
 
 
  1. int Helper::swap(int data) {  
  2. union {  
  3. int _i;  
  4. char _c[sizeof(int)];  
  5. } un;  
  6. un._i = data;  
  7. swap(un._c, sizeof(int));  
  8. return un._i;  

 

到目前為止,用這個算法做的數(shù)據(jù)轉(zhuǎn)換還沒有發(fā)現(xiàn)錯誤的情況.也許是沒碰到罷了.

例如 我沒有測試1)對于負(fù)數(shù)這個算法是否正確.2)對于無符號數(shù)這個算法是否正確.因為這個文件規(guī)范里面不會出現(xiàn)這兩種數(shù).

內(nèi)容比較基礎(chǔ).但覺得值得分享。在首頁上掛一會. 出去腐敗一把,回來再撤銷(如果回來還比較清醒的話).

以上就是對C++ Endian基本概念的講解


網(wǎng)站標(biāo)題:C++Endian具體操作方法講解
文章起源:http://www.5511xx.com/article/djpoghc.html