#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { //除号/ int a = 6/5;//结果为1; 整数除法 printf("%d\n", a); float c = 6.0 / 5; printf("c=%lf\n", c);//1.200000 float d = 6 / 5.0; printf("d=%lf\n", d);//1.200000 //取余% int f = 7 % 3; printf("f=%d\n", f);//%为取余,余1 %两侧不能为小数!!!!!!!! //内存中存放的是二进制的补码 //原码:数值的对应的二进制,,,反码:符号位不变,其他位按位取反 补码:反码+1 // 对应正整数,原码反码补码相同 //内存中存放的是二进制的补码 正整数的二进制表示有三种,原码,反码,补码 //原码:数值的对应的二进制,,,反码:符号位不变,其他位按位取反 补码:反码+1 //如果是正整数的话,将原码直接左移右移(左移右移操作符)就可以了,因为他的原码就是补码,如下 int g = 2; int h =g>> 1;//(右移操作符>> (向右移动一位)) printf("h=%d\n", h);//打印结果为1 因为2的二进制是00000000000000000000000000000010向右移动后为 //00000000000000000000000000000001,二进制是1 //如果是负整数,需要将数转化为二进制的原码---反码---补码---(左移或右移)新的补码---反码---原码,如下 int i = -10; int j = i >> 1; printf("j=%d\n", j);//打印结果为-5 //-10的原码为1000000000000000000000000000000000001010 //反码为1111111111111111111111111111111111110101(原码除第一位不变,其他位取反) //补码为1111111111111111111111111111111111110110(反码加1)(存储在电脑中) // 变为1111111111111111111111111111111111111011右移操作符(算术右移) //显示时反码为1111111111111111111111111111111111111010(补码-1) //原码为1000000000000000000000000000000000000101(反码取反)(打印出来为-5) //&---按位与(2进制) int k = 3; int l = 5; int m = k & l; printf("m=%d\n",m);//打印结果为1 //3的二进制是00000000000000000000000000000011 //5的二进制是00000000000000000000000000000101 //按位与,(有1和0,取0) 00000000000000000000000000000001,为1 //|---按位或(2进制) int n = 3; int o = 5; int p = n | o; printf("p=%d\n", p);//打印结果为7,因为3的二进制是00000000000000000000000000000011 //5的二进制是 00000000000000000000000000000101 //按位与,(有1和0,取1) 00000000000000000000000000000111,为7 //^---按位异或(2进制)(相同为0,相异为1) int q = 3; int r = 5; int s = q ^ r; printf("s=%d\n", s);//打印结果为6,因为3的二进制是00000000000000000000000000000011 //5的二进制是 00000000000000000000000000000101 //按位异或,(相同为0,相异为1) 00000000000000000000000000000110,为6 //不能用第三个值,交换t ,u //方法一:(适用于数值不是超级大的数,否则转化为二进制就过大,溢出) int t = 3; int u = 5; printf("t=%d u=%d\n", t,u); t = t + u; u = t - u; t = t - u; printf("t=%d u=%d\n", t,u); //方法2:(异或) //a^a=0; 0^a=a; 相同为0,不同为1 int t = 3; //a^b^b=a; int u = 5; printf("t=%d u=%d\n", t, u); t = t ^ u; u = t ^ u; t = t ^ u; printf("t=%d u=%d\n", t, u); return 0; }


