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

石家庄房和城乡建设部网站wordpress内容模板

石家庄房和城乡建设部网站,wordpress内容模板,微信管理软件,帝国cms 企业网站C语言中的移位操作符、位操作符 #x1f391;储备知识#xff1a;原码、反码、补码移位操作左移操作符#xff1a;右移操作符#xff1a; 位操作符按位与#xff1a;按位或|#xff1a;异或^:特点#xff1a; 经验积累#xff1a;1把整数a中某个二进制位改… C语言中的移位操作符、位操作符 储备知识原码、反码、补码移位操作左移操作符右移操作符 位操作符按位与按位或|异或^:特点 经验积累1把整数a中某个二进制位改成1、再改回来2统计二进制补码中1的个数判断二进制补码中最低位是否为1获得二进制位中最低位获得二进制中每一位3判断一个数是不是2的k次方 储备知识原码、反码、补码 1、 整数的二进制表示方式原码、反码、补码 具体关系 这里我们不去深究原码、反码、补码只需明白一下几点 1这里的原、反、补都是就整数而言我们不考虑小数 2、移位操作符的操作数都是整数也不考虑小数 3、正数的原码、反码、补码相同 4、在进行算术运算包括下面讲解的移位操作、位操作都是就补码而言 5由补码得到原码和由原码得到补码的路径相同先取反后加1 移位操作 左移操作符 操作规则左边丢弃右边补0 图解 右移操作符 注意和左移不太一样的是右移操作分为两种 1算术右移右边丢弃左边补符号位常见绝大多数编译器采用 #includestdio.h int main() {printf(%d, -1 2);return 0; }这里可以看到vs2019的编译器是进行算术右移的 2逻辑右移右边丢弃左边补0 位操作符 再次强调位操作符也是只对整数进行即操作数是整数 按位与 规则对补码二进制相同位置上全为1则为1有0则为0和有点像但是这是对于补码来说的 按位或| 规则对补码二进制位相同位置上有1则为1全0为0 异或^: 规则对补码对应二进制位上相同则为0不同则为1和|不同的就是1^1为0 特点 假设a为一个整数 10^aa; 2, a^a0; 3异或支持交换律,即a ^ a ^ ba ^ b ^ a; 理解方法/记忆方法把a^b想象成一个密码c如果c ^ a得到b,如果c ^ b得到a.(比如我们想把b中数据藏起来那么我们把b和a异或这个a只有自己知道如果想得到b中数据必须把这个密码和a异或但这个a只有自己知道是不是很6 eg:不创建临时变量实现两个数的交换。 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h int main() {int a 3;int b 4;printf(交换前a%d,b%d\n, a, b);a a ^ b;b a ^ b;a a ^ b;printf(交换后a%d,b%d\n, a, b);return 0; }注意实际开发过程中异或操作符交换两个变量效率 并不高并且只争对整数。 经验积累 1把整数a中某个二进制位改成1、再改回来 方法把二进制中某个二进制位改成1 int main() {int a 9;int n 0;printf(把a二进制位中从左向右第几位改成1);scanf(%d, n);int change a | (1 n);printf(%d, change);return 0; }改成1后再改回来 2统计二进制补码中1的个数判断二进制补码中最低位是否为1获得二进制位中最低位获得二进制中每一位 假设只考虑32位我们这里说的是指可以借鉴这种思想方法1将这个数按位与上一个1如果结果是1则该数二进制最低位为1如果结果是0则该数最低位是0 eg: 但是这里是要统计的32位没关系。只需要统计完一次将a像右移动1位再进行判断计数即可。 代码实现 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h int TheNumOf1(int n) {int i 0;int count 0;for (i 0; i 32; i){if (((n i) 1) 1)//key{count;}}return count; }int main() {int n 0;scanf(%d, n);int retTheNumOf1(n);printf(%d, ret);return 0; }方法2nn(n-1) 解释每次执行一次这个表达式n二进制最右边的1会被丢弃直至n中所有1都被丢弃此时n0。所以这个表达式执行的次数就是n二进制补码中1的个数 图解 代码实现 #define _CRT_SECURE_NO_WARNINGS 1 #includestdio.h int TheNumOf1(int n) {int count 0;while (n)//当n0说明n二进制位中所有1都没了{n n (n - 1);//keycount;}return count; }int main() {int n 0;scanf(%d, n);int retTheNumOf1(n);printf(%d, ret);return 0; }3判断一个数是不是2的k次方 方法如果一个数是2的k次方那么二进制表达形式中就只有一个1–转换为统计二进制位中1的个数用(nn(n-1))0),如果表达式成立说明n是2的k次方。
http://www.hkea.cn/news/14378325/

相关文章:

  • 利用网站制作网页网站开发需要学什么语言
  • 怎样通过网站注册公司wordpress首页加注册
  • 国外有哪些优秀的网站建立网站难吗
  • 沈阳小程序开发报价宁波seo排名优化教程
  • 珠海移动网站建设公司设计报价网站
  • 有教做衣服的网站吗python 兼职网站开发
  • 网站设计套用模板塑料模板厂 塑料模板生产厂家
  • 微信网站建设知识马可波罗网站做外贸
  • 网络彩票网站建设多少钱那种广告式网站怎么做
  • 潍坊做网站的公司手机对比参数配置
  • 深圳网站设计 公司海外新闻app
  • 如何查看网站开发公司建站平台 绑定域名
  • 网站建设及推广外包广州有几个区哪个区最好
  • 网站制作算是什么专业网站怎么做二维码链接
  • 如何建立游戏网站网站建设销售兼职合同
  • 动易网站后台修改栏目的字网站制作方案和主要内容
  • 阿里云带宽5m能做什么网站网站的管理系统
  • 网站备案的影布怎么做网站qq 微信分享怎么做
  • wordpress 自动头像苏州网站关键词优化推广
  • 网站备案号图标上海网站开发一对一培训
  • 建设厅考试网站北京网站制作建设
  • 婚庆公司网站建设总结报告广州番禺天气
  • 做任务 网站网站设计模板 psd
  • 苏州网站排名建筑人才网证书查询
  • 网站开发 语言网页创意的再设计
  • 网站建设意见征求汇报开发利用水资源
  • 法语网站建设做任务的网站有哪些
  • 网站邮件设置厦门网站设计个人
  • 计算机网站建设论文总结什么是wap
  • 闲鱼怎么做钓鱼网站四川网站开发哪家好