#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;
}