操作符相关内容

这篇博客详细介绍了C语言中关于位操作和移位操作的内容,包括原码、反码、补码的概念,左移和右移操作符的使用,以及位操作符如按位与、按位或、按位异或和按位取反的实践。此外,还讨论了整型提升和算术转换的规则。
摘要由CSDN通过智能技术生成

目录

一.原码,反码,补码

二.移位操作符

1. <<——左移操作符

2. >>——右移操作符

2.1. 逻辑右移:左边用0填充,右边丢弃。

2.2. 算术右移:左边用原该值的符号位填充,右边丢弃

三.位操作符

&

按位与

有零即为零,都是一则为一

|

按位或

有一即为一,都是零则为零

^

按位异或

相同为零,相异为一

~

按位取反

一变零,零变一(包括符号位和数据位)

一道面试题:不能创建临时变量,实现两个整数的交换

练习:求一个整数存储在内存中的二进制中1的个数

练习:二进制位置0或置1(将13的第5位置1)

练习:二进制位置0或置1(将13的第4位置0)

四.逗号表达式

五.下标访问操作符[]

六.函数调用操作符()

七.成员访问操作符

.

->

八.操作符的属性(优先级,结合性)

九.整型提升

如何进行整型提升呢?

十.算术转换


一.原码,反码,补码

整数的二进制表示方式有三种:原码,反码,补码。

其中,最高位的一位是符号位,其余的是数值位

其中,”0“表示正号(0111111111111111),”1“表示符号(1000000000000000)。

原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。

反码:将原码的符号位不变,其他位依次取反就可以得到反码。

补码:反码+1就得到补码。

补码得到原码也是可以使用:取反,+1的操作或-1,取反。

对于整形来说:数据存放内存中的是其补码,只有打印出来的是原码。

正数的补码是其原码,负数的补码是其原码取反,+1。

二.移位操作符

(移动的是二进制位)(操作数必须是整数

注意:不要移动负数位。

1. <<——左移操作符

移动规则:左边抛弃,右边补零 

00000000000000000000000000000001——1

左移一位——

00000000000000000000000000000010——2

2. >>——右移操作符

移动规则:右移运算分两种(右移到底是逻辑还是算数,取决于编译器的实现,常见的编译器是算术右移)

2.1. 逻辑右移:左边用0填充,右边丢弃。

2.2. 算术右移:左边用原该值的符号位填充,右边丢弃

三.位操作符

(操作数必须是整数)

操作和计算的是二进制位。(且在数据的补码上操作)

&

按位与

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值