C++中實現無符號右移
轉自:http://blog.csdn.net/ishallwin/article/details/4795917
在Java及JavaScript中提供了無符號右移操作符“>>>”,無符號右移操作符與普通右移操作符“>>”的區別是>>在右移時將以符號擴充套件原則進行右移,即在右移過程中它將保持原有資料的正負號不變,簡單地說,就是在右移正數時高位補0、右移負數時則高位補1,而無符號右移操作符>>>在右移時不考慮符號問題,即無論右移正數還是負數,其最高位都是補0。
無符號右移本質上是將被右移的數所有儲存位都視為資料位,因此很容易想到,如果想在C++中實現無符號右移,可以先將擬進行無符號右移的數轉換成無符號型別,然後執行普通右移就可以了。
以下是在VS2003中編寫的驗證程式碼:
[cpp] view plaincopy
- #include "stdafx.h"
- #include "iostream"
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- int nOrg;
- cout << "被移位數:";
- cin >> nOrg;
- cout << "有符號右移2位:"
- << (nOrg >> 2 )
- << endl;
- unsigned int nuNum = (unsigned)nOrg;
- cout << "轉換為無符號數:"
- << nuNum
- << endl;
- cout << "無符號右移2位:"
- << (nuNum >> 2 )
- << endl;
- return 0;
- }
夢斷酒醒的部落格http://www.yanzhijun.com
相關文章
- JavaScript >>> 三個大於號無符號右移運算子JavaScript符號
- JavaScript >> 有符號右移運算子JavaScript符號
- C++中*和&符號C++符號
- 現實生活中的視覺符號視覺符號
- C++中的&引用符號全解C++符號
- c++中&符號的幾種用法C++符號
- 無符號數相減得到的是無符號還是有符號?符號
- [C]有符號數和無符號數符號
- 關於有符號與無符號的位元組符號
- kingofark's Ineffective C/C++:自白2:有符號、無符號還有位運算,我的天! (轉)GoC++符號
- C語言之有符號無符號整數取值範圍C語言符號
- 無法解析的外部符號符號
- python 中 *符號Python符號
- 二分查詢實現符號表符號
- 正則中括號點符號符號
- C語言系列(二)有符號數和無符號數詳解C語言符號
- java基本無法-識別符號Java符號
- JavaScript 32位整型無符號操作JavaScript符號
- HTML 中的特殊符號HTML符號
- CSS中的特殊符號CSS符號
- shell中的特殊符號符號
- C++ 提示未宣告的識別符號C++符號
- FastHook——實現.dynsym段和.symtab段符號查詢ASTHook符號
- latex 中的存在,任意, ξ 符號符號
- 批處理中的符號符號
- XML中輸入特殊符號XML符號
- html中的常用特殊符號HTML符號
- jQuery中$符號規則(7)jQuery符號
- C++與Rust引用外部符號的比較C++Rust符號
- ORA-00904: : 識別符號無效符號
- 批次去掉Word/WPS中的回車符符號符號
- IDEA出現Cannot resolve symbol “xxx”(無法解析符號)IdeaSymbol符號
- css中的@符號的用處CSS符號
- 軟體版本中的 符號意思符號
- 4,javase程式碼實戰-運算子——左移右移實現乘除(三)Java
- SICP:符號求導、集合表示和Huffman樹(Python實現)符號求導Python
- [譯] 使用 SVG 符號和 CSS 變數實現多彩圖示SVG符號CSS變數
- CSS @ 符號CSS符號