C语言中的操作符

算术操作符

+ - * / %

•除号两端都是整数,得到的结果也是整数

•除号;两端必须有一个浮点数,得到的结果才能是浮点数

•% 左右两端必须为整数

移位操作符——操作的是二进制位

<< 左移操作符

>> 右移操作符

整数的二进制表示有3种形式:

原码

反码

补码

•正整数的原码,反码,补码是相同的

•负整数的原码,反码,补码是要计算的

•最高位是符号位: 0代表正数

                 1代表负数

•一个整数是32个比特位

•Int a = 5 的二进制为:00000000000000000000000000000101

•正数的原码,反码,补码都相同

•Int a = -5 的二进制为:

•原码:正数的第一位变成1

•反码:1变0, 0变1(原码的符号位不变,其他位按位取反得到的就是反码)

•补码:最低位变成1(反码+1就是补码)

•整数在内存中储存的是补码的二进制

•左移:左边丢弃,右边补0

右移操作符:

算术右移:右边丢弃,左边补原符号位

逻辑右移:右边丢弃,左边补0

>> 当前编译器,在右移的是采用算术右移

>> 到底是算术右移还是逻辑右移是取决于编译器的

对于移位运算符,不要移动负数位,这个是标准未定义的

例: int num = 10 ;

      Num>>-1; //error

位操作符

& //按位与 只要有0就是0,两个是1才是1  

&a:取地址a,//单目操作符

| //按位或 只要有1就是1,两个同时是0才是0

^ //按位异或 对应的二进制位:相同为0,相异为1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值