目录
1.练习题:
第一题:
- 因为sizeof返回的是一个无符号数,sizeof(i)就是无符号的4
- i--虽然为-1,但是会发生算术转换,转换成两个无符号数相减
- -1内存的补码是全1,那么将它看成一个无符号数是一个很大的数字
- 所以打印结果:>
第二题:
讲解:
- 这里赋值(=)比逗号表达式的优先级高,而且没有加括号
- 所以b = ++c先算,b=7,然后计算后的表达式
- 所以结果是:9 23 8
2.编程题
2.1 求整数补码中1的个数
- n&n-1:会让n最右边的1消失
- 只要n = n & n-1 这个动作执行几次,就知道n中有多少个 1
代码实现:
2.2 比较两个数二进制中不同位的个数
2.3 字符串逆序
2.4 计算数字各个位置的和(递归实现)
例如:输入1234,返回1+2+3+4 = 10
2.5 递归实现n的k次方