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

C/C++

編輯:C++入門知識

 C/C++對位操作有如下方法:

<1>位操作運算符(注意:下面幾個運算符不改變原來的變量的值,只是獲得運算的結果即一個新值)

<2>位字段

如下C++代碼:

 a: b: c: d:

 

位字段由一個結構聲明,該結構聲明為每個字段提供標簽,並決定標簽字段的寬度.

上面的使用unsigned int作為位字段結構的基本布局單元,因此即使一個結構只有一個一位的成員字段,該結構也和一個unsigned int的大小相同,上面用sizeof看為8,機器sizeof(unsigned int)為4,若把最後一個改為d:20,則本機器的sizeof剛好為4.

 

另外,十六進制前面加 0x,八進制前加 0

-------------------------------------------------------------------------------------------------------------------------------------------------------

一:寫一個函數,返回將給定數字的後給定位數反轉,即0變1,1變0

思路:

~是將整個數的全部位取反了,不合適.用異或^,把給定值和一個後面幾位全部是1前面剩下的都是0的數^,即可.

關鍵是怎麼獲得那個後面幾位全是1的數?

#include <iostream>

  invert_end( num, bits)    
 mask=;   
     temp=;    

     (bits>=mask|temp;   
        temp=temp<<;    
        bits-- num^mask;   
 main(<<()<<<<>> res=invert_end(val,<<val<<  << 

 

 

 

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