当前位置: 首页 > news >正文

查询行业信息的网站布吉做棋牌网站建设哪家技术好

查询行业信息的网站,布吉做棋牌网站建设哪家技术好,指定网站怎么设置路由器只访问,wordpress 订阅号 采集C语言学习 目录 文章目录 前言 一、算术操作符 二、移位操作符 2.1 左移操作符 2.2 右移操作符 三、位操作符 3.1 按位与操作符 3.2 按位或操作符 | 3.3 按位异或操作符 ^ 四、赋值操作符 五、单目操作符 5.1 逻辑反操作符#xff01; 5.2 正值、负值-操作符 5.3 取地址… C语言学习 目录 文章目录 前言 一、算术操作符 二、移位操作符 2.1 左移操作符 2.2 右移操作符 三、位操作符 3.1 按位与操作符 3.2 按位或操作符 |  3.3 按位异或操作符 ^ 四、赋值操作符 五、单目操作符 5.1 逻辑反操作符 5.2 正值、负值-操作符 5.3 取地址操作符 5.4 计算操作数的类型长度sizeof 5.5 按位取反操作符 ~ 5.6 和--操作符 5.7 解引用操作符 * 5.8 强制类型转换操作符 5.9 sizeof和数组 六、关系操作符 总结 前言 本文介绍C语言操作符有以下内容算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符。 一、算术操作符 -      *       /      % 1.  除了 % 操作符之外其他的几个操作符可以作用于整数和浮点数。 2.  / 操作符如果两个操作数都为整数执行整数除法。而只要有浮点数执行的就是浮点数除法。  整型的除法 代码示例 #include stdio.hint main() {int a 1 / 2;printf(a%d\n, a);return 0; } 运行结果 a0浮点型的除法 代码示例1 #include stdio.hint main() {double b 1.0 / 2;printf(b%f\n, b);return 0; } 运行结果 b0.500000代码示例2 #include stdio.hint main() {double b 1 / 2.0;printf(b%f\n, b);return 0; } 运行结果 b0.5000003. % 操作符计算的是整除后的余数% 操作符的两个操作数必须为整数。 代码示例 #include stdio.hint main() {int c 7 % 2;printf(c%d\n, c);return 0; } 运行结果 c1二、移位操作符 左移操作符 右移操作符 注移位操作符的操作数只能是整数。 移位操作符移动的是二进制位。 整数的二进制表示有3种 原码反码补码 正的整数的原码、反码、补码相同。 负的整数的原码、反码、补码是要计算的。 由负整数原码计算出反码原码的符号位不变其他位按位取反。由负整数反码计算出补码反码1。 示例 7的原码、反码、补码 原码0000 0000 0000 0000 0000 0000 0000 0111反码0000 0000 0000 0000 0000 0000 0000 0111补码0000 0000 0000 0000 0000 0000 0000 0111 -7的原码、反码、补码 原码1000 0000 0000 0000 0000 0000 0000 0111反码1111  1111  1111  1111  1111  1111  1111 1000   符号位不变其他位按位取反补码1111  1111  1111  1111  1111  1111  1111 1001   反码1 整数在内存中存的是补码。 移位操作符移动的是存在内存中的补码。 2.1 左移操作符 移位规则 左边抛弃、右边补0。 正的整数左移示例 对7左移 补码0000 0000 0000 0000 0000 0000 0000 0111 左移0000 0000 0000 0000 0000 0000 0000 1110      左移后内存中存的还是补码因为正整数的原码和补码相同所以对7左移后的值十进制为14。 代码验证 #include stdio.hint main() {int a 7 ;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } 运行结果 a7 b14变量b得到了变量a左移1位之后的变化但变量a自身是不变的。 负的整数左移示例 对-7左移 补码1111  1111  1111  1111  1111  1111  1111 1001 左移1111  1111  1111  1111  1111  1111  1111 0010 左移后内存中存的还是补码因为负整数的原码和补码之间需要计算。 由负整数补码计算出反码补码-1。由负整数反码计算出原码反码的符号位不变其他位按位取反。 补码1111  1111  1111  1111  1111  1111  1111 0010  左移1位后 反码1111  1111  1111  1111  1111  1111  1111 0001    补码-1 原码1000 0000 0000 0000 0000 0000 0000 1110     符号位不变其他位按位取反。 计算出-7左移后的值十进制为-14。 代码验证 #include stdio.hint main() {int a -7 ;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } 运行结果 a-7 b-14因为二进制数的每一位都是2的指数幂所以左移1位后只要没有发生数据溢出值就会变为原来的2倍如果变量为无符号整形或正整数表达式 a n 会将a的所有位左移n位运算结果位a×。 2.2 右移操作符 移位规则 逻辑移位左边补0右边丢弃。算术移位左边补原值的符号位右边丢弃。绝大多数编译器采用算术移位所以示例都为算数移位结果 正的整数右移示例 对7右移 补码0000 0000 0000 0000 0000 0000 0000 0111 左移0000 0000 0000 0000 0000 0000 0000 0011      右移后内存中存的还是补码因为正整数的原码和补码相同所以7左移后的值十进制为3。 代码验证 #include stdio.hint main() {int a 7 ;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } 运行结果 a7 b3负的整数右移示例 对-7右移 补码1111  1111  1111  1111  1111  1111  1111 1001 左移1111  1111  1111  1111  1111  1111  1111 1100 右移后内存中存的还是补码因为负整数的原码和补码之间需要计算。 由负整数补码计算出反码补码-1。由负整数反码计算出原码反码的符号位不变其他位按位取反。 补码1111  1111  1111  1111  1111  1111  1111 1100  左移1位后 反码1111  1111  1111  1111  1111  1111  1111 1011    补码-1 原码1000 0000 0000 0000 0000 0000 0000 0100     符号位不变其他位按位取反。 计算出-7右移后的值十进制为-4。 代码验证 #include stdio.hint main() {int a -7 ;int b a 1;printf(a%d\n, a);printf(b%d\n, b);return 0; } 运行结果: a-7 b-4因为二进制数的每一位都是2的指数幂所以右移1位后只要没有发生数据溢出值就会变为原来的二分之一如果变量为无符号整形或正整数表达式 a n 会将a的所有位右移n位运算结果位a÷。 警告对于移位运算符不要移动负数位这个是标准未定义的。 三、位操作符 //按2进制位与  |  //按2进制位或  ^  //按2进制位异或  —— 相同为0相异为1 注他们的操作数必须是整数。 3.1 按位与操作符 两者都为1时结果为1。 代码示例 #include stdio.hint main() {int a -5;int b 3;int c a b;printf(a%d\n, a);printf(b%d\n, b);printf(c%d\n, c);return 0; } 运行结果 a-5 b3 c3先计算出-5和3的二进制位补码 -5二进制位 原码1000 0000 0000 0000 0000 0000 0000 0101 反码1111 1111  1111 1111  1111 1111  1111 1010 补码1111 1111  1111 1111  1111 1111  1111 1011 3二进制位 补码0000 0000 0000 0000 0000 0000 0000 0011   用补码进行按位与计算 1111 1111  1111 1111  1111 1111  1111 1011      -5补码 0000 0000 0000 0000 0000 0000 0000 0011    3补码 0000 0000 0000 0000 0000 0000 0000 0011      -5 3 的补码 因为符号位为0为正整数所以原码与补码相同对应十进制值为3。 3.2 按位或操作符 |  | 只要有一个为1结果就为1。 代码示例 #include stdio.hint main() {int a -5;int b 3;int c a | b;printf(a%d\n, a);printf(b%d\n, b);printf(c%d\n, c);return 0; } 运行结果 a-5 b3 c-5用补码进行按位或计算 1111  1111  1111  1111  1111  1111 1111 1011      -5补码 0000 0000 0000 0000 0000 0000 0000 0011    3补码 1111  1111  1111  1111  1111  1111  1111 1011     -5 | 3 的补码 因为符号位为1为负整数所以原码需由补码计算得出。 1111  1111  1111  1111  1111  1111  1111 1011       补码 1111  1111  1111  1111  1111  1111  1111 1010       反码 1000 0000 0000 0000 0000 0000 0000 0101       原码 计算得出原码的十进制值为-5。 3.3 按位异或操作符 ^ ^ 相同为0相异为1。 代码示例 #include stdio.hint main() {int a -5;int b 3;int c a ^ b;printf(a%d\n, a);printf(b%d\n, b);printf(c%d\n, c);return 0; } 运行结果 a-5 b3 c-8用补码进行按位异或计算 1111  1111  1111  1111  1111  1111 1111 1011      -5补码 0000 0000 0000 0000 0000 0000 0000 0011    3补码 1111  1111  1111  1111  1111  1111  1111 1000     -5 ^ 3 的补码 因为符号位为1为负整数所以原码需由补码计算得出。 1111  1111  1111  1111  1111  1111  1111 1000       补码 1111  1111  1111  1111  1111  1111  1111 0111       反码 1000 0000 0000 0000 0000 0000 0000 1000       原码 计算得出原码的十进制值为-8。 编程题不能创建临时变量第三个变量实现两个数的交换。 方法1代码示例 #include stdio.hint main() {int a 5;int b 3;printf(a%d , a);printf(b%d\n, b);a a b;//变量a中存了ab的和b a - b;//ab的和8减去变量b的值3就是变量a的初值5//把5存在变量b中此时变量a中的值还是ab的和8a a - b;//ab的和8减去此时变量b的值5就是变量b的初值3//把3存在变量a中此时变量a中的值是3printf(a%d , a);printf(b%d\n, b);return 0; } 运行结果 a5 b3 a3 b5但是这种方法会有溢出的问题。 方法2代码示例 #include stdio.hint main() {int a 5;int b 3;printf(a%d , a);printf(b%d\n, b);a a ^ b;//a 5 ^ 3b a ^ b;//b 5 ^ 3 ^ 3 - b5a a ^ b;//a 5 ^ 3 ^ 5 - a3printf(a%d , a);printf(b%d\n, b);return 0; } 运行结果 a5 b3 a3 b5两个相同的数按位异或的结果为00和任何整数按位异或的结果为整数本身。 四、赋值操作符 a b 就是把b的值赋给a在 左侧必须是变量不能是常量或表达式。 复合赋值符      -      *      /       %                         |     ^ 下方每个代码框中的第1句使用复合赋值操作符的代码意思和它下一句代码意思相同。 a 3;a a 3; a 3;a a 3; a 3;a a 3;五、单目操作符 !                    逻辑反操作 -                    负值                   正值                   取地址 sizeof            操作数的类型长度以字节为单位 ~                   对一个数的二进制按位取反 --                   前置、后置--                  前置、后置 *                    间接访问操作符(解引用操作符) (类型)            强制类型转换 首先来明确一些定义 操作符运算符可以进行运算的符号如、-、*、/ 等。操作数作为运算对象的变量或常量如 ab 中的 a和b。单目操作运算符只需要有1个操作数如 a-b 。双目操作运算符需要两个操作数如 ab、c-d 。 5.1 逻辑反操作符 作用把真变假假变真。 C语言中0为假非0为真。 代码示例 #include stdio.hint main() {int flag 5;//if条件判断非0为真0为假if(flag)//flag为真进入if{printf(真\n);}if(!flag)//flag为假进入if{printf(假\n);}return 0; }5.2 正值、负值-操作符 代码示例 #include stdio.hint main() {int a 8;int b a;int c -a;printf(a%d\n, a);printf(b%d\n, b);printf(c%d\n, c);int e -9;int f e;int g -e;printf(e%d\n, e);printf(f%d\n, f);printf(g%d\n, g);return 0; }运行结果 a8 b8 c-8 e-9 f-9 g95.3 取地址操作符 操作符可以取出变量在内存中的首地址。 代码示例 #include stdio.hint main() {int a 6;printf(%p\n, a);int* p a;//p就是指针变量return 0; }运行结果 000000AAD799FA745.4 计算操作数的类型长度sizeof sizeof是一个操作符。 可以计算变量所占内存空间的大小单位是字节。可以计算类型所创建的变量占据空间的大小单位是字节。可以计算整个数组所占内存空间的大小单位是字节。 代码示例 #include stdio.hint main() {//计算变量所占内存空间的大小单位是字节。int a 7;int n1 sizeof(a); //计算变量a所占内存空间的大小printf(n1%d\n, n1);//计算类型所创建的变量占据空间的大小,单位是字节。int n2 sizeof(int);printf(n2%d\n, n2);//计算整个数组所占内存空间的大小,单位是字节。int arr[10] { 0 };printf(arr[10]%d\n, sizeof(arr));return 0; } 运行结果 n14 n24 arr[10]40sizeof使用细节注意 代码示例 #include stdio.hint main() {int a 3;printf(%d\n, sizeof(a));printf(%d\n, sizeof(int));printf(%d\n, sizeof a);//可以这样使用printf(%d\n, sizeof int);//不可以这样使用return 0; } 区分 sizeof是操作符不是函数。strlen是库函数用来求字符串长度。 5.5 按位取反操作符 ~ ~0 对0按位取反 补码0000 0000 0000 0000 0000 0000 0000 0000      0的原码、反码、补码都相同 取反1111  1111  1111  1111  1111  1111  1111 1111 按位取反后内存中存的还是补码负整数的原码和补码之间需要计算。 由负整数补码计算出反码补码-1。由负整数反码计算出原码反码的符号位不变其他位按位取反。 补码1111  1111  1111  1111  1111  1111  1111 1111  0按位取反后 反码1111  1111  1111  1111  1111  1111  1111 1110    补码-1 原码1000 0000 0000 0000 0000 0000 0000 0001     符号位不变其他位按位取反。 计算出0按位取反后的值十进制为-1。 代码验证 #include stdio.hint main() {int a 0;printf(~a%d\n, ~a);return 0; } 运行结果         ~a-1~5 对5按位取反 代码示例 #include stdio.hint main() {int a 5;printf(~a%d\n, ~a);return 0; } 运行结果 ~a-6~5 补码0000 0000 0000 0000 0000 0000 0000 0101     5的原码、反码、补码都相同 取反1111  1111  1111  1111  1111  1111 1111 1010 按位取反后内存中存的还是补码负整数的原码和补码之间需要计算。 由负整数补码计算出反码补码-1。由负整数反码计算出原码反码的符号位不变其他位按位取反。 补码1111  1111  1111  1111  1111  1111 1111 1010  5按位取反后 反码1111  1111  1111  1111  1111  1111  1111 1001    补码-1 原码1000 0000 0000 0000 0000 0000 0000 0110     符号位不变其他位按位取反。 计算出0按位取反后的值十进制为-6。 对某个数的二进制任意一位进行置1或清0的改动 代码示例 #include stdio.hint main() {int a 12;a | (1 4);printf(a%d\n, a);a (~(1 4));printf(a%d\n, a);return 0; } 运行结果 a28 a12对12二进制的第五位置1 0000 0000 0000 0000 0000 0000 0000 1100    12补码 0000 0000 0000 0000 0000 0000 0001 0000     修改第五位的数可由1移位获得 0000 0000 0000 0000 0000 0000 0001 1100      12与上数按位或得到指定修改位置1 第五位置1后的数十进制为28 对28二进制的第五位清0 0000 0000 0000 0000 0000 0000 0001 1100     28补码 0000 0000 0000 0000 0000 0000 0001 0000     修改第五位的数可由1移位获得 1111  1111  1111  1111  1111  1111  1110 1111     对1移位后的数按位取反 0000 0000 0000 0000 0000 0000 0000 1100      28与上数按位与得到指定修改位置清0 第五位清0后的数十进制为12 5.6 和--操作符 前置先后使用后置先使用再 前置--先--后使用后置--先使用再-- 代码示例 #include stdio.hint main() {int a 6;int b a;//前置先后使用//a a1; b a;printf(a%d\n, a);printf(b%d\n, b);int c 6;int d c;//后置先使用再//c d; c d1; printf(c%d\n, c);printf(d%d\n, d);return 0; } 运行结果 a7 b7 c7 d6代码示例 #include stdio.hint main() {int a 6;int b --a;//前置--先--后使用//a a-1; b a;printf(a%d\n, a);printf(b%d\n, b);int c 6;int d c--;//后置--先使用再--//c d; c d-1; printf(c%d\n, c);printf(d%d\n, d);return 0; } 运行结果 a5 b5 c5 d65.7 解引用操作符 * 代码示例 #include stdio.hint main() {int a 6;int* p a;*p 20;printf(a%d\n, a);return 0; }运行结果 a20取地址操作符可以通过变量找到地址解引用操作符*可以通过地址找到变量。 上面程序中*p就等价于变量a。 5.8 强制类型转换操作符 强制类型转换是把变量从一种类型转换为另一种数据类型。 代码示例 #include stdio.hint main() {int a (int)3.14;printf(a%d\n, a);return 0; } 运行结果 a3int可以强制将带小数点的数转换为整型。 5.9 sizeof和数组 代码示例 #include stdio.hvoid test1(int arr[]) {printf(test1(arr[])%d\n, sizeof(arr)); } void test2(char ch[]) {printf(test2(ch[])%d\n, sizeof(ch)); } int main() {int arr[10] { 0 };char ch[10] { 0 };printf(arr[10]%d\n, sizeof(arr));printf(ch[10]%d\n, sizeof(ch));test1(arr);test2(ch);return 0; } 运行结果 arr[10]40 ch[10]10 test1(arr[])8 test2(ch[])8sizeof(数组名) 可得出整个数组在内存中的大小。 数组传参传递的是数组首元素的地址。所以test1函数和test2函数中sizeof操作符读到的是数组首元素地址在内存中的大小。 六、关系操作符 !       用于测试“不相等”      用于测试“相等” 使用过程中注意和 代码示例 #include stdio.hint main() {if (3 5)//可以进行数是否相等的判断{printf(相等);}if (abc abcdef)//这样写实际上是在比较2个字符串的首字符的地址//不是比较两个字符串是否相等{printf(相等);}//比较两个字符串是否相等应该使用strcmp库函数return 0; } 七、逻辑操作符 逻辑与如果两边操作数都为真则结果为真                           如果两边操作数有一个为假则结果为假。 ||          逻辑或如果两边操作数有一个为真则结果为真                           如果两边操作数都为假则结果为假。 代码示例 #include stdio.hint main() {int a 0 2;int b 1 2;int c 0 || 2;int d 1 || 2;int e 0 || 0;printf(0 2 %d\n, a);printf(1 2 %d\n, b);printf(0 || 2 %d\n, c);printf(1 || 2 %d\n, d);printf(0 || 0 %d\n, e);return 0; } 运行结果 0 2 0 1 2 1 0 || 2 1 1 || 2 1 0 || 0 0区分逻辑与和按位与 区分逻辑或和按位或 代码示例 #include stdio.hint main() {int a 1 2;int b 1 2;int c 1 | 2;int d 1 || 2;printf(1 2 %d\n, a);printf(1 2 %d\n, b);printf(1 | 2 %d\n, c);printf(1 || 2 %d\n, d);return 0; } 运行结果 1 2 0 1 2 1 1 | 2 3 1 || 2 1 总结 以上就是今天要讲的内容本文介绍了C语言操作符的使用。
http://www.hkea.cn/news/14264592/

相关文章:

  • 什么做书籍的网站好网页qq家园
  • 3免费建站网站网站可以不进行icp备案吗
  • 欧美个人网站wordpress 网页 登录界面
  • 台州网站外包应用最广网站建设技术
  • 九江网站建设优化公司WordPress网站修改
  • vs2008 网站消息弹窗怎么做梦织网站
  • 商城网站功能表免费二级网站
  • 时尚网站设计案例软件开发商是什么意思
  • 我的网站突然找不到网页了亦庄网站建设公司
  • 兰州网站建设咨询薇做网站排名费用
  • 杨和网站设计制作合肥网站推广培训
  • 建设网站属于什么费用php 网站备份代码
  • 多域名指向同一网站长春网站制作教程
  • 网站游戏怎么制作秦皇岛网络推广公司
  • 线条类网站翻墙在线代理
  • 成都校园兼职网站建设网站如何调用数据库
  • 金华网站建设大型网页建设厦门电信网站备案
  • 网站布局方案搜索引擎优化培训
  • 济宁有没有专门做网站的网站开发只要
  • 杭州网站建设网网站后台怎么添加图片
  • 手机网站 微信链接怎么做郑州各区房价一览表
  • 上海门户网站建设公司wordpress采集规则
  • 智能logo设计网站龙岩网站设计价格
  • 长春建站的费用网站是用dreamer做的_为什么后台能进去前台进不去了
  • 搭建网站是什么下载微信公众号
  • 建设网站的功能地位如何做垂直网站
  • 网站建设数据库建设vi设计用什么软件做
  • 凉山建设局网站苏州网站建设招聘
  • 网站运营需要做什么网站功能与内容设计的步骤
  • 做的比较好的法律实务培训网站亚马逊品牌备案网站怎么做