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

橙色短信网站模板网站建设板块免费下载

橙色短信网站模板,网站建设板块免费下载,最好的看vr影片的设备,wordpress不支持中文标签前言#xff1a;本节内容介绍的操作符#xff0c;操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 #xff08;1#xff09;整数的二进制表示形式有三种#xff1a;原码、反码和补码。 #xff08;2#xff09;原码、反码和补码的… 前言本节内容介绍的操作符操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 1整数的二进制表示形式有三种原码、反码和补码。 2原码、反码和补码的长度有数据类型来决定如整数就是四个字节转化后是三十二位比特位所以一个整数写成二进制序列的时候是32个bit位。 3数据是以补码的形式在内存中存储的。 4正负数原码、反码和补码不一样 2.正数三码的介绍 1正数的原码、反码和补码都一样不需要计算可以直接得出来。 2举例 7我们先把7转化成二进制数111由于整数的二进制序列是32位所以其他我需要补0就写成这样 原码00000000 00000000 00000000 00000111 反码00000000 00000000 00000000 00000111 补码00000000 00000000 00000000 00000111 3二进制数为11  二进制序列 原码00000000 00000000 00000000 00000011 反码00000000 00000000 00000000 00000011 补码00000000 00000000 00000000 00000011 3.负数三码的介绍 我们接下来重点介绍负数的原码、反码和补码 1原码 对于有符号的整数来说最高位的一位是符号位符号位是1表示负数符号位是0表示正数。若是无符号数没有符号位所有位都是有效位。数字0则当成无符号数来看待。 正数 负数 对于有符号数来说正负数原码的差异就是在最高位。 2反码 1.反码顾名思义就是取反。 定义反码是在原码的基础上除了符号位其他按位取反1的话就写成00就写成1。 2.-7的反码 原码10000000 00000000 00000000 00000111 反码11111111  11111111   11111111  11111000 3补码 1.定义补码则是在反码的基础上1。 2.-7的补码 原码10000000 00000000 00000000 00000111 反码11111111  11111111   11111111  11111000 补码11111111  11111111   11111111  11111001 而补码就是数据在内存中的存储形式。所以整数在计算的时候使用的也是补码。 总结三码的转换规则原码----(取反)---反码-----(1)----补码 补码----(-1)---反码----取反---原码 补码----(取反1)---原码 二、移位操作符 前言移位操作符包括左移操作符和右移操作符 1.左移操作符 (1)常用口诀左边丢弃右边补0 (2)代码演示 #includestdio.h int main() {int a 7;int b a 1;//a向左移动一位printf(%d\n,a);//a的本质没有改变printf(%d\n,b);return 0; } 代码结果 由上面很清楚的就可以知道其实a的值还是-7没有改变。 代码演示2 #includestdio.h int main() {int a -7;//将a的值改成负数int b a 1;int c a 2;printf(%d\n,a);printf(%d\n,b);printf(%d\n,c);return 0; } 运行结果 两次代码演示初步总结左移一位结果在原数据基础上×2左移两位结果在原数据基础上×3但原数据的值不会改变。 3左移符号解析 左移符号移动的是补码但是打印的时候打印的是原码。 正数左移7 原码00000000 00000000 00000000 00000111 反码00000000 00000000 00000000 00000111 补码00000000 00000000 00000000 00000111 正数的左移比较容易看出来因为原码、反码和补码都相同 负数右移-7 原码10000000 00000000 00000000 00000111 反码11111111  11111111   11111111  11111000 补码11111111  11111111   11111111  11111001 总结     无论正数还是负数左移的结果都会×2。 记忆口诀左边丢弃右边补0。 2.右移操作符 1右移操作符分类 右移操作符包括算术右移和逻辑右移 逻辑右移右边直接丢弃左边补0 算术右移右边直接丢弃左边补原符号位正数补0负数补1-----------常用选择 我们下面的例子也都用算术右移来演示 2代码演示 #includestdio.h int main() {int a 10;int b a 1;printf(%d\n, a);printf(%d\n, b);int c -10;int d c 1;printf(%d\n, c);printf(%d\n,d);return 0; } 运行结果 其实不难发现算术右移其实也有一种÷2的效果。 3右移图示解析 总结大多数编译器都是使用算术右移效果相当于÷2 算术右移口诀右边丢弃左边补原符号位 3.左移、右移总结 1移动的对象只能是整数 2只能移动正整数位比如左移一位、右移两位。 3移动后不会改变原数据的值 4移动的是二进制的补码打印的结果是二进制的原码 三、位操作符 前言位操作符的对象仍然是二进制的补码他们必须有两个操作对象 1.按位与 1定义 两个对象的补码比较相同位有0则结果位0相同位都是1结果才为1。 2代码演示 #includestdio.h int main() {int a 5;int b 7;int c a b;//将按位与的结果赋值给cprintf(%d\n,c);return 0; } 运行结果 3代码分析 我们先列出5和7的补码 5的补码00000000 00000000 00000000 00000101 7的补码00000000 00000000 00000000 00000111 图解 4实列讲解 根据有0为0两个1才为1的特点可以按位与1来确定最低一位最右一边是1或者0。 代码演示 #includestdio.h int main() {int a 3;int b a 1;printf(%d\n,b);return 0; } 运行结果 结果分析 3的补码00000000 00000000 00000000 00000011 1的补码00000000 00000000 00000000 00000001 所以任何数按位与1得出的结果为1则该数的二进制最低为是1如果是0则最低为是0。当然要知道该数的二进制序列的所以1则需要配合右移符号使用后续补充 2.按位或| 1定义 二进制序列对应位上有1则为1两个相同才为0。 2代码演示 #includestdio.h int main() {int a 5;int b -3;int c a | b;//按位或printf(%d\n,c);return 0; } 运行结果 3代码解读 5的补码00000000 00000000 00000000 00000101 -3的补码11111111 11111111 11111111 11111101 3.按位异或^ 1定义 对应的二进制位相同为0相异为1 由此而来的知识点a^a0          a^0a 2代码演示 #includestdio.h int main() {int a 5;int b -3;int c a ^ b;//按位异或printf(%d\n, c);return 0; } 运行结果 3代码解读 5的补码00000000 00000000 00000000 00000101 -3的补码11111111 11111111 11111111 11111101 4实例讲解 题目在不借助第三方变量的情况下交换两个变量的值 代码演示 #includestdio.h int main() {int a 520;int b 1314;a a ^ b;b a ^ b;//此时的aa^ba a ^ b;printf(a%d b%d\n,a,b);return 0; } 运行结果 代码解读 第一步aa^b这个结果先不要算出来 第二步ba^b这个时候左边的aa^b所以整个等式变成ba^b^b因为b^b0且a^0a所以此时就将a的值赋给了b 第三步aa^b此时左边的aa^bba所以左边a^b^ab,所以就将b赋值给了a完成两个数的交换 四、某些复合赋值操作符和一个单目操作符 前言操作对象都是二进制的补码 1.复合赋值操作符 1赋值操作符的介绍 右移等 左移等 按位与等 |       按位与等 ^      按位异或等 2使用方法 上面的这些符号就多了一个等号就如同一样 代码举例 #includestdio.h int main() {int a 5;a a 1;//普通写法a 1;//复合写法a a 1;a 1;a a 2;a 2;//复合写法a a | 4;a | 4;a a ^ 1;a ^ 1;return 0; } 2.一个单目操作符 1定义~一个波浪号 作用对一个数的二进制按位取反 2代码演示 #includestdio.h int main() {int a 0;printf(%d\n,~a);//单目操作符return 0; } 运行结果 3例子 #includestdio.h int main() {int a 10;a | (1 4);//控制二进制将10变成26printf(%d\n,a);//再将26变回10a (~(1 4));printf(%d\n,a);return 0; } 10的补码00000000 00000000 00000000 00001010 26的补码00000000 00000000 00000000 00011010 10变成26 26变回10只需将该位置按位与上0即可
http://www.dnsts.com.cn/news/192324.html

相关文章:

  • 买个网站空间wordpress 鼠标悬停
  • 百度网站优化升上去百度首页登录
  • 曲阳网站建设阿里云网站模板
  • 怎么建立网站管理系统wordpress主题动漫
  • vs做网站如何放背景图wordpress画廊
  • 郑州建站模板搭建平面设计图片 作品集
  • 物流公司做网站哪家好快速搭建网站vue
  • 玉石网站建设的定位网站类网站开发
  • 自己 做网站学什么 平面设计浙江省台州市做网站多少钱
  • 西宁整站优化网上做任务网站有哪些内容
  • 企业网站建设基本流程网站seo基础
  • 怎样做网站平台wordpress点击换图
  • 网站设计制作的连接方式重庆在线课程平台
  • 乐清装修网站哪个好上杭县城乡规划建设局网站
  • 荆州 商务 网站建设软文营销的概念是什么
  • 网站制作背景图片网站开发实训意义
  • 网站切换语言怎么做的重庆装饰公司
  • 网站建设工具的公司wordpress自动挣钱
  • 营销型网站建设 代理宁波seo推广定制
  • 制作网站收费wordpress 插件升级失败
  • 石家庄信息网官方网站平台网站建设源码
  • 网站开发需求分析实例做设计的分析图网站有哪些
  • 网站开发的3个阶段中台网站开发
  • 有经验的邵阳网站建设改wordpress评论邮箱
  • 智能自助建站网站如何用wordpress搭建录播课程
  • 机械产品做那几个网站好陶瓷马赛克 网站建设 中企动力
  • 效果好企业营销型网站建设公司wordpress首页不显示指定分类
  • 湛江免费网站制作xml是用来做网站的嘛
  • 猪八戒网做网站如何付款大型网站建设服务公司
  • 网站认证是什么网站页脚有什么作用