程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HM中int xSign (int x) 的分析

HM中int xSign (int x) 的分析

編輯:C++入門知識

[cpp] 
inline Int xSign(Int x) //!< 取出x的符號,x大於0返回+1,x小於0返回-1 
{//! 當x等於0時,返回0;當x小於0時,由於x是int型,x>>31(算術右移)後結果為0xffffffff,即-1,而-x為0x00000001,右移31位後結果為0, 
  //! 因此此時返回值為-1;當x大於0時,x>>31後結果為0x00000000,即0,而-x即為補碼形式表示的負數(最高位為1),被轉換為unsigned int後, 
  //! 再右移31位時,符號位不會保留,最終移位結果為0x00000001,即1 
  return ((x >> 31) | ((Int)( (((UInt) -x)) >> 31))); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved