c++和c语言先学哪个好 C语言中的位运算符是怎么取反的?

C语言中的位运算符是怎么取反的?A是整数类型,通常占4个字节2的原始代码:0000 0000 0010求反:1111 1111 1111 1111 1111 1111 1111 1111 1111 1

C语言中的位运算符是怎么取反的?

A是整数类型,通常占4个字节

2的原始代码:0000 0000 0010

求反:1111 1111 1111 1111 1111 1111 1111 1111 1111 1101

最高的位是1,所以它是一个负数。方法是

再次求反并加1(符号位不变)

求反:1000 0000 00010

加1 1000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000[0011

所以它是-3

C语言如何计算一个数字的位数:

输入要计算的数字x

定义一个变量int n=0

循环,x每次减少10次,n=n1,最后x变成0,循环结束

输出n值

代码:

#include<stdio。H>

void main()

{

]int x,m,n=0

printf(“input x:”)scanf(%d,&x)

m=x//备份原始数字以输出

do{

n

x/=10

}while(x>0)

printf(%d是%d位n”,m,n)

}