操作符详解(2)——位操作符

目录

1.位操作符

1)&——按位与

2)| ——按位或

 3)^ ——按位异或

2. ^ 的使用

 3.练习

1.位操作符

位操作符有:

&——按位与(按二进制位)

|——按位或(按二进制位)

^——按位异或(按二进制位)

注:他们的操作数必须是整数

1)&——按位与

规则:两个数只有同时为1才为1。

2)| ——按位或

规则:两个数只要其中一个为1则为1。

 3)^ ——按位异或

规则:两个数相同则为0,相异则为1。

2. ^ 的使用

题:不能创建临时变量(第三个变量),实现两个数的交换。

方法一:

 以上的方法创建了临时变量,不符合题意。

方法二:

 理论上,以上的方法可能会出现溢出。(当a达到最大范围,b也达到最大范围,a+b就会出现溢出现象)

方法三:

 注意:在实际的开发过程中,当我们需要交换两个变量时,通常使用方法一。

 3.练习

编写代码实现:求一个整数存储在内存中的二进制中1的个数。(求补码的二进制中1的个数)

#include<stdio.h>
int main()
{
	int count = 0;
	int a = 3;
	int i = 0;
	for (i = 0; i < 32; i++)
	{
		int b = a >> i;

		if (b & 1 == 1)
		{
			count++;
		}
	}
	printf("count=%d\n", count);
	return 0;
}

运行结果是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 语言中,单星号操作符 * 和双星号操作符 ** 都是非常常见的操作符,它们可以用于不同的地方,有着不同的操作方式。在本文中,我们将详细解释这两个操作符的用法,并结合实例进行说明。 单星号操作符 * : 在Python中,单星号操作符 * 可以用于多种场景,其主要的作用是将可迭代对象拆分成单个的元素。 1.传递参数: 首先,* 可以用于将一个可迭代对象(如列表或字符串)作为函数的参数传递到另一个函数中,这种操作方式通常用于参数不固定的函数。 示例: ``` def add(*args): return sum(args) print(add(1,2,3)) # 输出6 ``` 2.拆分序列: * 还可以用于解包(或拆分)序列类型的数据结构,如列表、元组等,使其变成单个的元素。 示例: ``` num_list = [1, 2, 3, 4] print(*num_list) # 输出1 2 3 4 ``` 3.拼接多个列表: 将多个列表拼接为一个大列表时,也可以使用 * 操作符。 示例: ``` list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = [7, 8, 9] new_list = [*list1, *list2, *list3] print(new_list) # 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9] ``` 双星号操作符 ** : 双星号操作符 ** 主要用于将字典类型的数据解包(或展开)成关键字参数,这种操作方式通常用于函数或方法的调用。 示例: ``` def add(a,b,c): return a+b+c dict1 = {'a':1,'b':2,'c':3} print(add(**dict1)) # 输出6 ``` 总结: 单星号操作符 * 和双星号操作符 ** 在Python中使用非常广泛,掌握它们的使用方式可以大大提高程序开发的效率。我们在函数或方法中经常会看到这两个操作符,只要学会它们的使用方法,就可以轻松地处理函数的参数和返回值,同时也可以方便地操作数据结构中的元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值