當前位置:首頁 » 編程語言 » c語言左移
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言左移

發布時間: 2022-02-09 15:18:33

A. c語言的左移運算符

為什麼計算出來的數據了
二進制 1111 1110
1111 1101
1111 1011

估計樓主你的這些數據應該是p1的,而temp的值是
二進制 0000 0001
0000 0010
0000 0100

注:
~temp只是求反並不改變temp本身的值,
對temp向高位移,低位是補0的而不會把前面的1換到後面來,

B. C語言中左移

tempbyte <<= 1;



tempbyte = tempbyte << 1;

你不會不知道 a += 1; 表示什麼吧.

C. C語言按位左移運算規則

C語言中按位左移的運算符為<<,其規則如下:

對於操作a<<n,

1 按照二進制值每位向高位(書寫上是向左)移動n位;

2 最高位(最左邊的)n位捨去;

3 最低位(最右邊)填加n個0.


簡單起見,用char型舉例如下:

例一

0x12 << 3 =>

B00010010 << 3 =>

B10010 000(這里最高位的三個0被捨去,其它依次左移,最低位補三個0) =>

0x90

即0x12 << 3 = 0x90

例二

0x9E << 2 =>

B10011110 << 2 =>

B01111000 (最高位10捨去,最低位補兩個0)=>

0x78


可以編寫如下程序驗證:

#include<stdio.h>
voidcheck(chara,intn)
{
printf("0x%hhx<<%d=0x%hhx ",a,n,a<<n);
}

intmain()
{
check(0x12,3);
check(0x9e,2);

return0;
}

其運行結果為

0x12<<3=0x90
0x9e<<2=0x78

可以看到與我們計算結果是相符的。

D. C語言中的左移和右移

左移就是把二進制數向左移動,右邊補0,0的二進制全是0,左移之後右邊再補0,移5和移6沒區別
<<後面的數字表示移多少位

E. C語言左移

左移就是把二進制數向左移動,右邊補0,0的二進制全是0,左移之後右邊再補0,移5和移6沒區別
<<後面的數字表示移多少位