网站改版建设原则,网页游戏都有哪些,公司网站的栏目设置,网页设计个人网站操作符分类#xff1a;
算数操作符#xff1a; - * / %
//算数操作符
// int main()
// {
// // /除法 1.整数除法(除号两端都是整数) 2浮点数除法#xff0c;除号的两端只要有一个小数就执行小数除法
// // 除法中#xff0c;除数为0
// int a 7 / 2;
/…操作符分类
算数操作符 - * / %
//算数操作符
// int main()
// {
// // /除法 1.整数除法(除号两端都是整数) 2浮点数除法除号的两端只要有一个小数就执行小数除法
// // 除法中除数为0
// int a 7 / 2;
// printf(%d\n,a); //3
// double b 7 / 2;
// printf(%lf\n,b); //3.000000
// double c 7 / 2.0;
// printf(%lf\n,c); //3.500000
// int d 0;
// int e 5 / d; //除数不可为0编译器会报错// printf(%d\n,e);// return 0;
// }int main()
{int a 17 % 8; //% 得到数整数的余数//int b 17.0 % 8.0; // %取模操作符的两个操作数必须都是整数才行printf(%d\n,a);return 0;
}
移位操作符 //移位操作符
// 左移操作符
// 右移操作符
//注意以为操作符的操作数只能是整数 移动的是二进制
int main()
{//int a 15;//00000000000000000000000000001111 -原码 //00000000000000000000000000001111 -反码 //00000000000000000000000000001111 -补码//int c -15; //10000000000000000000000000001111 -原码 //11111111111111111111111111110000 -反码(原码的符号位不变其他位按位取反) 11111111111111111111111111110001 -补码(反码1就是补码)//int b a 1;//移动的就是a中的二进制信息 //0000000000000000000000000000111 - 7//右移算术右移右边丢弃左边直接补原来的符号位 逻辑右移右边丢弃左边直接补0// C语言没有明确规定是算术右移还是逻辑右移//int c a 1;//00000000000000000000000000011110//整数的二进制表示形式 原码 反码 补码 //正整数的原码、反码、补码是相同的//负的整数原码、反码、补码是要计算的//首先不管是正整数还是负整数都可以写出二进制原码 1.根据正负直接写出的二进制序列就是原码//1个整型是4个字节 32bit位//整数在内存中存储的是补码//计算的时候也是使用补码计算的// printf(%d\n,b); //7// printf(%d\n,c); //30// int d -15; //10000000000000000000000000001111// int e d 1;//11111111111111111111111111110001 - 11111111111111111111111111111000 - 11111111111111111111111111110111 -00000000000000000000000000001000// printf(%d\n,e);//移位操作符不要移负数哦int a 6;// 110int b a 1;//1100printf(%d\n,b); //12return 0;
}
位操作符 | ^
//位操作符
//也是操作二进制位
//
// int main()
// {
// int a 3; //00000000000000000000000000000011
// int b -5;//10000000000000000000000000000101 11111111111111111111111111111010 补码11111111111111111111111111111011
// int c a b;
// // -- 对应二进制位有0则为0两个同时为1才是1
// //00000000000000000000000000000011
// //11111111111111111111111111111011
// //00000000000000000000000000000011 -补码// printf(%d\n,c); //3// return 0;
// }//|
// int main()
// {
// int a 3; //00000000000000000000000000000011
// int b -5;//10000000000000000000000000000101 11111111111111111111111111111010 补码11111111111111111111111111111011
// int c a | b;
// // -- 对应二进制位有1则为1两个同时为0才是0
// //00000000000000000000000000000011
// //11111111111111111111111111111011
// //11111111111111111111111111111011 -补码
// //11111111111111111111111111111010
// //10000000000000000000000000000101 -5
// printf(%d\n,c); //-5// return 0;
// }//^
int main()
{int a 3; //00000000000000000000000000000011int b -5;//10000000000000000000000000000101 11111111111111111111111111111010 补码11111111111111111111111111111011int c a ^ b;// ^ -- 对应二进制位相同为0相异为1//00000000000000000000000000000011//11111111111111111111111111111011//11111111111111111111111111111000 -补码//11111111111111111111111111110111//10000000000000000000000000001000printf(%d\n,c); //-8return 0;
}//不能创建临时变量实现两个整数的交换
int main()
{int a 3;int b 5;printf(交换前: a%d b%d\n,a,b);// int tmp a;// a b;// b tmp;// a a b;// b a - b;// a a - b; 超过整形最大存储则不行//a ^ a - 0//a ^ 0 a// 异或是支持交换律的//a ^ b ^ a 5//a ^ a ^ b 5a a ^ b;b a ^ b; // b a ^ b ^ b aa a ^ b;// a a ^ b ^ a bprintf(交换后: a%d b%d\n,a,b);return 0;
}
编写代码实现求一个整数存储在内存中的二进制中1的个数
//编写代码实现求一个整数存储在内存中的二进制中1的个数
//方法1
// int main()
// {
// //整数有32个bit位
// //获得32个bit位的每一位
// //判断这一位是否为1
// //是1就是记数器1
// int num 10;
// int count 0;// while (num)
// {
// if (num%2 1)
// {
// count;
// }
// num num/2;// }
// printf(二进制中1的个数 %d\n,count);// return 0;
// }//方法2
int main()
{int num 10;int i 0;int count 0;for(i0;i32;i){if (num (1 i)){count;}}printf(二进制中1的个数 %d\n,count);return 0;
}
赋值操作符: - * / ....
单目操作符: ! sizeof - ~ *
关系操作符: !
逻辑操作符: ||
条件操作符:? :
逗号表达式 : ,
下标引用函数调用和结构成员: []. (). . -