<<运算?&=、|=、 ^=、<<=、>>=的意思? 十六进制前缀是 0x。
<<运算?
a<<b 表示把a转为二进制后左移b位(在后面添加 b个0)。例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<<2 =110010000 =400,可以看出,a<<b的值实际上就是a乘以2的b次方,因为在二进制数后面添加一个0就相当该数乘以2,2个零即2的2次方 等于4。通常认为a<<1比a*2更快,因为前者是更底层一些的操作。因此程序中乘以2的操作尽量用左移一位来代替。
定义一些常量可能会用到<<运算。你可以方便的用1<<16 -1 来表示65535(unsingned int 最大值16位系统)。很多算法和数据结构要求数据模块必须是2的幂,此时就可以用<<来定义MAX_N等常量。
&=、|=、 ^=、<<=、>>=的意思?
1、op=的运算符是C语言中一大类运算符,所有的op=形式运zhi算符,写作a op= b时,均等效于daoa=a op b;
2、几乎所有的双目运算符,均有和赋值合并的op=运算符,包括+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=等;
3、使用op=运算符,比使用a=a op b的形式要高效。
4、位运算操作时,操作数参与运算是逐位运算的,对应的每位进行运算并形成结果的对应位。
5、&按位与运算规则为两个操作数相同位上的值均为1,那么结果的该位上值为1, 否则为0。
6、|按位或运算规则为两个操作数相同位上的值均为0,那么结果的该位上值为0, 否则为1。
总结: 0去执行 | 运算, 不改变。 1去执行 | 运算, 指定位置 0 变 1。 0 去执行 & 运算, 全变0。 1 去执行 & 运算, 不改变。
十六进制前缀是 0x。
以0x开始du的数据表示16进制,计算机中每位的权为16,即zhi(16进制)10 = (10进制)1×16。
C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也不区分大小写。(注意:0x中的0是数字0,而不是字母O)
posted on 2020-11-15 20:50 niubiwowang 阅读(1020) 评论(0) 收藏 举报
浙公网安备 33010602011771号