C/C++笔记(二)运算符法则

本文系列仅是本人根据个人理解对C/C++语言的一些理解笔记、介绍不喜勿喷,欢迎大神对本人文章中的错误进行指正

本文是本人基于近几年的学习、工作进行整理,结合自己所学写下C/C++笔记系列文章,也期待能给一些初入编程门径者一些启发和学习的资料

本人认为编程的基础就是对数据的理解,对数据类型的理解与灵活运用,可以使你的程序运行更加流畅……

一、编码

原码:最高位表示符号位,其他位表示大小

反码:正数反码与原码相同,负数:符号位不变,其他按位取反

补码:正数补码与原码相同,负数:反码+1

※补码的补码就是原码

二、运算符

运算符:运算法则、优先级别、结合性

运算所需变量为两个的运算符叫做双目运算符·或者要求运算对象的个数是2的运算符称为双目运算符。

单目运算符是运算所需变量为一个的运算符,又叫一元运算符

 

算术运算符:

+,-,*,/,%(取模或求余)

※: %两边都是整数类型

 

自增自减(++,--)自己本身+1,或者-1,自己必须是变量

前置:先自加(减),再运算

后置:先运算,再自加(减)

总结:前置优先级低于后置,前置效率高于后置

 

赋值运算符:=,+=,*=

其他运算符:

强转运算符:(类型)

逗号运算符:,

逗号表达式:从左往右依次运算,最后一个式子值,就是整个表达式的值

 

位运算符:

位运算: 参与运算的数以补码方式出现。

 

&按位与: 同1为1,否则为0;

~按位非:按位取反(0->1,1->0)

<<左移:低位补0。

>>右移:正数高位补0,负数高位补1;

^按位异或: 同则为0,异则为1;

| 按位或: 有1为1,否则为0;

 

不使用关系运算符,验证一个整数是正数还是负数?x>>31 判断一个数是否是2的N次幂?!(x&x-1)

位运算判断一个数奇数还是偶数?x&1

 

交换两个数不经过第三方变量

x=x^y;

y=x^y;

x=x^y;

 

例:

c = ~4 运算过程:

原码:00001010

反码:00001010

补码:00001010

~4 = 11110101运算结果(补码)看成是原码

10001010   运算结果对应的反码

10001011 运算结果对应的补码(补码的补码=原码)

 

c=4<<4 运算过程:

原码:00001010

反码:00001010

补码:00001010

<<4 = 10100000运算结果(补码)看成是原码

11011111   运算结果对应的反码

11100000 运算结果对应的补码(补码的补码=原码)

 

关系运算符:

关系运算符:>,<,>=,<=,!=,==  运算结果为bool型

逻辑运算:

逻辑运算符:!逻辑非、&&逻辑与、||逻辑或  运算结果为bool型

逻辑非:真则为假,假则为真

逻辑与:同真为真,否则为假.(当前面的式子为假时,后面的式子不参与运算)

逻辑或:有真为真,否则为假.(当前面的式子为真时,后面的式子不参与运算)

 

条件运算符:

条件运算符:?:

a?b:c  a为真,结果为b;否则结果为c。

 

 

 



 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值