欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C/C++ 左移<<, 右移>>的作用及說明

 更新時間:2022年07月22日 10:00:19   作者:慕木子  
這篇文章主要介紹了C/C++ 左移<<, 右移>>的作用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

C/C++ 左移<<, 右移>>作用

1. 左移 <<

取兩個數(shù)字,左移第一個操作數(shù)的位,第二個操作數(shù)決定要移動的位置。換句話說,左移動一個整數(shù) x 和一個整數(shù) y ( x < < y ) 等于 x 乘以 2y

代碼示例:

/* C++ Program to demonstrate use of left shift  
   operator */
#include<stdio.h> 
int main() 
{ 
    // a = 5(00000101), b = 9(00001001) 
    unsigned char a = 5, b = 9;  
  
    // The result is 00001010  
    printf("a<<1 = %d\n", a<<1); 
    
    // The result is 00010010  
    printf("b<<1 = %d\n", b<<1);   
    return 0; 
} 

輸出結(jié)果:

a<<1 = 10
b<<1 = 18

2. 右移 >>

取兩個數(shù)字,向右移動第一個操作數(shù)的位,第二個操作數(shù)決定移動的位置。同樣地,右平移( x > > y )等于x除以 2y.

代碼示例:

/* C++ Program to demonstrate use of right 
   shift operator */
#include<stdio.h> 
  
using namespace std; 
int main() 
{ 
    // a = 5(00000101), b = 9(00001001) 
    unsigned char a = 5, b = 9;  
  
    // The result is 00000010  
       
    printf("a>>1 = %d\n", a>>1); 
    
    // The result is 00000100 
    printf("b>>1 = %d\n", b>>1);   
    return 0; 
}

輸出結(jié)果:

a>>1 = 2
b>>1 = 4

3. 數(shù)字 1 左移 <<

1 << i = 2i。它只適用于正數(shù)。

代碼示例:

#include<stdio.h> 
int main() 
{  
   int i = 3;   
   printf("pow(2, %d) = %d\n", i, 1 << i); 
   i = 4;   
   printf("pow(2, %d) = %d\n", i, 1 << i); 
   return 0; 
}

輸出結(jié)果:

pow(2, 3) = 8
pow(2, 4) = 16

注意事項:

C++ 左移右移越界情況

左移越界

  • 一個32位的long,值為1,
  • 左移32位 = 1
  • 左移33位= 2
  • ...
  • 左移64位= 1
  • 左移65位= 3

所以左移越界有點向循環(huán)左移,左移Index位--》相當(dāng)于左移 Index%32位 ,當(dāng)然%多少是根據(jù)變量類型來定的

int main() {
 
	long v[2] = {0,0};
	long u1 = 1;
	long u2 = (u1 <<33);
	v[1] |= (u1<<33);
	LOG(sizeof(long))
	cout << u1 <<"," <<u2<< "," << v[1]<< endl;
	std::cin.get();
}

輸出:

右移越界

右移越界,移出去的位都會變成0

#include<iostream>
#include<vector>
#include<unordered_map>
using namespace std;
#define LOG(x) std::cout<<x<<std::endl;
 
int main() {
 
	long v[2] = {0,0};
	long u1 =3;
	long u2 = (u1 >>1);
	v[1] |= (u1>>1);
	LOG(sizeof(long))
	cout << u1 <<"," <<u2<< "," << v[1]<< endl;
	std::cin.get();
}

輸出:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言結(jié)構(gòu)體數(shù)組同時賦值的另類用法

    C語言結(jié)構(gòu)體數(shù)組同時賦值的另類用法

    今天小編就為大家分享一篇關(guān)于C語言結(jié)構(gòu)體數(shù)組同時賦值的另類用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 淺析char 指針變量char *=p 這個語句的輸出問題

    淺析char 指針變量char *=p 這個語句的輸出問題

    下面小編就為大家?guī)硪黄獪\析char 指針變量char *=p 這個語句的輸出問題。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計

    C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)電話簿管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++如何保存bmp圖片

    C++如何保存bmp圖片

    這篇文章主要介紹了C++如何保存bmp圖片問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語言超詳細(xì)講解指針與結(jié)構(gòu)體

    C語言超詳細(xì)講解指針與結(jié)構(gòu)體

    指針提供了對地址操作的一種方法,因此,使用指針可使得C語言能夠更高效地實現(xiàn)對計算機(jī)底層硬件的操作。另外,通過指針可以更便捷地操作數(shù)組。C數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是C編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許您存儲不同類型的數(shù)據(jù)項
    2022-05-05
  • C++實現(xiàn)數(shù)獨快速求解

    C++實現(xiàn)數(shù)獨快速求解

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)數(shù)獨快速求解的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++利用SQLite實現(xiàn)命令行工具

    C++利用SQLite實現(xiàn)命令行工具

    這篇文章主要為大家詳細(xì)介紹了一個基于 C++、SQLite 和 Boost 庫的簡單交互式數(shù)據(jù)庫操作 Shell,該 Shell 允許用戶通過命令行輸入執(zhí)行各種數(shù)據(jù)庫操作,感興趣的可以了解下
    2023-11-11
  • 詳解C/C++中const限定符總結(jié)

    詳解C/C++中const限定符總結(jié)

    const是一種限定符,被const所限定的變量其值不可以被改變。。這篇文章主要介紹了C/C++中const限定符總結(jié),通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 一篇文章帶你了解C語言:入門基礎(chǔ)

    一篇文章帶你了解C語言:入門基礎(chǔ)

    這篇文章主要介紹了C語言入門之基礎(chǔ)知識詳解,文中有非常詳細(xì)的C語言使用教程及相關(guān)基礎(chǔ)知識,對正在學(xué)習(xí)c語言的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-08-08
  • C++ 雙鏈表的基本操作(詳解)

    C++ 雙鏈表的基本操作(詳解)

    下面小編就為大家?guī)硪黄狢++ 雙鏈表的基本操作(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12

最新評論