10_31

题目讲解

求一个整数二进制表达式中1的个数

1.%2    /2法,传参类型为unsigned int 即可适用于负数

2.位操作符与移位操作符法

用1和n比较,然后右移n,移动32次,是一则统计

3.神之一手

二进制的递变性质每一次减一都有位的变化

1000000
01111111

n & (n-1)常用于统计二进制中有几个1,涉及二进制的多去考虑考虑
while(n)
{
        n = n & (n - 1);
        count++;
}

整形提升和算数转换

整形提升

char, unsigned char,short, unsigned short运算时会转换成Int类型再计算

int ,unsigned int, long, long long,float ,double则遵从算数转换规则

算术转换

不同类型计算时(无强制类型转换),会按照从低到高的方向执行算术转换(如:int转换成unsigned int时 不改变数字,改变cpu的读取方式,符号位变成算术位(如:负整数与无符号整数的运算)

全局变量和静态变量存在静态区,默认初始化为0.

scanf("%d%d", &a, &b) ==2
scanf的返回值是输入的值的个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值