当前位置:首页 » 编程语言 » 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没区别
<<后面的数字表示移多少位