1.
进制
:进制也就是进位制,是人们规定的一种进位方法。对于任何一种进制—x进制,就表示某一位置上的数运算时是逢x进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。
计算机采用二进制和十六进制。
2. 进制转换 :
①.十进制转N进制
比如:十进制转二进制,十进制转十六进制。
秘诀:连除(除以位权)倒取余。
小数:秘诀连乘(乘以位权)正取整。小数点保留。
②.N进制转十进制。
比如:二进制转十进制,十六进制转十进制。
秘诀:当前位上的数乘以基数(或者位权)的位数减一次方。
3. 位运算符
参与运算的量按二进制进行运算。
按位与& ,按位或丨, 按位非~, 按位异或^(脱字符) ,左移<<, 右移>>
<<左移一位相当于乘2,>>右移一位相当于除2
一个字节(Byte)表示8个二进制位(bit)
一个字节所能表示的数的范围是0~255.
按位与作用之一就是对现有数据进行清零。
异或 :整型变量相异或(对应位相同则为 0 不同则为 1 )
用异或可以交换两个变量的值
移位中的左移末尾补0;
右移运算对于负数,分为逻辑右移(高位补0),和算术右移(高位补1)
1. int a=5;// 4个字节,32个二进制位
原码/补码:
0000 0000 0000 0000 0000 0000 0000 0101
2.int number1=3;
int number2=5;
int result1=number1&number2;// 整形变量按位与
printf(" 按位与 的结果为: %d\n",result1);
int result2=number1|number2;// 整型变量按位或
printf(" 按位或的结果为: %d\n",result2);
int result3=~number2;// 对整型变量按位取非(取反)
printf(" 按位非的结果为: %d\n",result3);int result4=number1^number2;//
整型变量相异或(相同则为
0
不同则为
1
)
printf(" 异或的结果为: %d\n",result4);
//交换 number1和numbr2的值
number1=number2^number1;
number2=number1^number2;
number1=number1^number2;
printf("number1=%d\nnumbe2=%d\n",number1,number2;
3.交换两个数的值 (可以用异或来解决)
int a=3,b=4;
a=a^b;
b=a^b;
a=a^b;
计算机采用二进制和十六进制。
2. 进制转换 :
①.十进制转N进制
比如:十进制转二进制,十进制转十六进制。
秘诀:连除(除以位权)倒取余。
小数:秘诀连乘(乘以位权)正取整。小数点保留。
②.N进制转十进制。
比如:二进制转十进制,十六进制转十进制。
秘诀:当前位上的数乘以基数(或者位权)的位数减一次方。
3. 位运算符
参与运算的量按二进制进行运算。
按位与& ,按位或丨, 按位非~, 按位异或^(脱字符) ,左移<<, 右移>>
<<左移一位相当于乘2,>>右移一位相当于除2
一个字节(Byte)表示8个二进制位(bit)
一个字节所能表示的数的范围是0~255.
按位与作用之一就是对现有数据进行清零。
异或 :整型变量相异或(对应位相同则为 0 不同则为 1 )
用异或可以交换两个变量的值
移位中的左移末尾补0;
右移运算对于负数,分为逻辑右移(高位补0),和算术右移(高位补1)
1. int a=5;// 4个字节,32个二进制位
原码/补码:
0000 0000 0000 0000 0000 0000 0000 0101
2.int number1=3;
int number2=5;
int result1=number1&number2;// 整形变量按位与
printf(" 按位与 的结果为: %d\n",result1);
int result2=number1|number2;// 整型变量按位或
printf(" 按位或的结果为: %d\n",result2);
int result3=~number2;// 对整型变量按位取非(取反)
printf(" 按位非的结果为: %d\n",result3);int
printf(" 异或的结果为: %d\n",result4);
//交换 number1和numbr2的值
number1=number2^number1;
number2=number1^number2;
number1=number1^number2;
printf("number1=%d\nnumbe2=%d\n",number1,number2;
3.交换两个数的值 (可以用异或来解决)
int
a=a^b;
b=a^b;
a=a^b;