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

C/C++ 左移<<, 右移>>的作用及說(shuō)明

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

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

1. 左移 <<

取兩個(gè)數(shù)字,左移第一個(gè)操作數(shù)的位,第二個(gè)操作數(shù)決定要移動(dòng)的位置。換句話(huà)說(shuō),左移動(dòng)一個(gè)整數(shù) x 和一個(gè)整數(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. 右移 >>

取兩個(gè)數(shù)字,向右移動(dòng)第一個(gè)操作數(shù)的位,第二個(gè)操作數(shù)決定移動(dòng)的位置。同樣地,右平移( 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

注意事項(xiàng):

C++ 左移右移越界情況

左移越界

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

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

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();
}

輸出:

右移越界

右移越界,移出去的位都會(huì)變成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();
}

輸出:

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

相關(guān)文章

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

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

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

    淺析char 指針變量char *=p 這個(gè)語(yǔ)句的輸出問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺析char 指針變量char *=p 這個(gè)語(yǔ)句的輸出問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • C語(yǔ)言實(shí)現(xiàn)電話(huà)簿管理系統(tǒng)課程設(shè)計(jì)

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

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

    C++如何保存bmp圖片

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論