成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ Endian具體操作方法講解

開發(fā) 后端
我們今天為大家介紹的C++ Endian將會通過代碼示例的講解來詳細解讀其應用方式以及技巧。希望大家可以從中獲得一些幫助。

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

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

1.判斷當前CPU使用哪種C++ Endian?

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

代碼相當直觀:

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)對于負數(shù)這個算法是否正確.2)對于無符號數(shù)這個算法是否正確.因為這個文件規(guī)范里面不會出現(xiàn)這兩種數(shù).

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

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

責任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-03 13:26:53

C++計時

2010-02-02 13:57:31

C++解析#pragm

2010-02-02 16:23:46

C++實現(xiàn)WPF動畫

2010-01-07 15:37:35

VB.NET ForNext循環(huán)

2010-03-05 15:27:06

Python文件路徑

2009-12-30 16:48:52

Silverlight

2010-04-02 08:42:32

Oracle 游標

2010-01-27 18:00:57

Android開機自啟

2010-03-05 17:06:26

Python顯示UTF

2010-01-28 16:14:33

Android安裝卸載

2010-04-13 17:00:27

Oracle NLS_

2010-02-01 14:33:05

C++實現(xiàn)RTTI

2010-03-19 14:19:58

Python正則表達式

2010-03-24 10:06:37

Python嵌入C++

2009-12-30 15:47:40

Silverlight

2011-03-17 09:06:58

iptables映射端口

2010-02-03 10:23:47

C++操作符重載

2009-12-31 15:36:13

SilverLight

2010-07-26 13:30:23

2010-08-02 17:20:12

nfs啟動Linux
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线视频一区二区 | av一级久久 | 黄在线免费观看 | 日本网站免费在线观看 | 91视频免费在观看 | 亚洲精品一区二区三区蜜桃久 | 日韩精品视频在线免费观看 | 欧美不卡一区二区 | 国产91久久精品一区二区 | 欧美中文一区 | 久久久国产精品视频 | 欧美v日韩v | 中文字幕精品一区二区三区精品 | 国产视频中文字幕在线观看 | 中文字幕第二区 | 中文字幕不卡在线观看 | 亚洲欧美少妇 | 精品91视频 | 91 在线 | 久久se精品一区精品二区 | 羞羞视频在线网站观看 | 高清视频一区二区三区 | 毛片软件 | 一级黄色影片在线观看 | 亚洲国产精品一区二区第一页 | 国产精品污www一区二区三区 | 黄色网址免费在线观看 | 一级片免费网站 | 在线观看免费黄色片 | 中文字幕一区二区三区四区五区 | 欧美视频免费在线观看 | 国产成人一区二区 | 国产一区久久久 | 青青草一区 | 99热在线免费 | 国产精品高潮呻吟久久av黑人 | 国产福利资源 | 蜜桃av人人夜夜澡人人爽 | 天天干天天谢 | 国产成人久久精品一区二区三区 | 欧美在线一区二区视频 |