1.原码,反码,补码:

(1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负;其余n-1位为数值位,各位的值可为零或一。当真值为正时,原码、反码、补码数值位 完全相同;当真值为负时,原码的数值位保持原样,反码的数值位是原码数值位的各位取反,补码则是反码的最低位加一。注意符号位不变。

2.无符号位运算

(1)位运算应用口诀

清零取反要用与,某位置一可用或

若要取反和交换,轻轻松松用异或

(2)位运算符的应用 (源操作数s 掩码mask)

按位与-- &:

1 清零特定位 (mask中特定位置0,其它位为1,s=s&mask)

2 取某数中指定位 (mask中特定位置1,其它位为0,s=s&mask)

按位或-- | :

常用来将源操作数某些位置1,其它位不变。 (mask中特定位置1,其它位为0 s=s|mask)

位异或-- ^ :

使特定位的值取反 (mask中特定位置1,其它位为0 s=s^mask)

(3). 异或运算的一些特性

一个数和自己做异或的结果是0。

从异或的真值表可以看出,不管是0还是1,和0做异或保持原值不变,和1做异或得到原值的相反值。例如:unsigned int a, b, mask = 1U << 6; a = 0x12345678; b = a ^ mask; /* flip the 6th bit */

如果a1^a2^a3……^an之中1的个数为奇数个,否则为偶数个。这条性质可用于奇偶校验(Parity Check)。

x ^ x ^ y == y  例如:交换两个变量的值,不得借助额外的存储空间a = a ^ b; b = b ^ a; a = a ^ b;

实例说明:

如果要对一个整数中的某些位进行操作,怎样表示这些位在整数中的位置呢?可以用掩码(Mask)来表示。比如掩码0x0000ff00表示对一个32位整数的8~15位进行操作,举例如下。

1、取出8~15位。

unsigned int a, b, mask = 0x0000ff00;

a = 0x12345678;

b = (a & mask) >> 8; /* 0x00000056 */

这样也可以达到同样的效果:

b = (a >> 8) & ~(~0U << 8);

2、将8~15位清0。

unsigned int a, b, mask = 0x0000ff00;

a = 0x12345678;

b = a & ~mask; /* 0x12340078 */

3、将8~15位置1。

unsigned int a, b, mask = 0x0000ff00;

a = 0x12345678;

b = a | mask; /* 0x1234ff78 */

2&period;2 Go语言基础之位运算操作

一.位运算符 位运算符对整数在内存中的二进制位进行操作. 运算符 描述 & 参与运算的两数各对应的二进位相与. (两位均为1才为1) | 参与运算的两数各对应的二进位相或. (两位有一个为1就 ...

C语言基础知识-运算符与表达式

C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

C语言基础知识-数据类型

C语言基础知识-数据类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常量与变量 1>.关键字 C的关键字共有32个. >.数据类型关键字(12个) char,s ...

深入理解计算机系统(2&period;2)---布尔代数以及C语言上的位运算

布尔代数上的位运算 布尔代数是一个数学知识体系,它在0和1的二进制值上演化而来的. 我们不需要去彻底的了解这个知识体系,但是里面定义了几种二进制的运算,却是我们在平时的编程过程当中也会遇到的.这四种运 ...

C语言基础知识-程序流程结构

C语言基础知识-程序流程结构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.概述 C语言支持最基本的三种程序运行结构:顺序结构,选择结构,循环结构. 顺序结构:程序按顺序执行, ...

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

李洪强iOS开发之OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

C语言中的位运算和逻辑运算

这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286 位运算 C语言中的位运算包括与(&),或(|),亦或(^),非( ...

Golang 入门系列(三)Go语言基础知识汇总

前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...

随机推荐

首次构建android studio gradle 下载缓慢的问题

1.先使用其他工具下载gradle, https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 2.然后放在C:\Users\A ...

canvas 动画

1.随机产生形状,做360度运转,带有一个开始开始按钮一个停止按钮 var canvas=$('.mycanvas'); canvas.attr("width",500);//$( ...

windows7&plus;eclipse-jee-luna&plus;hadoop2&period;6运行环境及eclipse plugin插件编译

一.hadoop集群环境配置  参见: Win7环境: 登录用户名:hadoop , 与Hadoop ...

50道经典的JAVA编程题&lpar;46-50&rpar;

50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...

C&num; 截取字符串某个字符分割的最后一部分

例如 string s1="123.456.789",想截取得到的新字符串为“789” 代码如下: string s1 = "123.456.789"; str ...

iOS 调试心得

修复 bug 占用我们日常开发的大部分时间,熟练的使用调试工具可以给我们节约大部分的时间. LLDB 的常用命令 expression expresion 是一个非常常用的命令,我们可以通过这个命令来 ...

Why validation set &quest;

Let's assume that you are training a model whose performance depends on a set of hyperparameters. In ...

OpenGL学习(1)——创建窗口

这是我的第一篇博客,试着记录学习OpenGL的过程.使用的教程:LearnOpenGL,系统:Deepin 15.9.3,IDE:Qt Creator. 添加头文件 创建窗口用到两个库:GLFW和GL ...

js删除Array数组中的某个元素

Array.prototype.indexOf = function (val) { ; i < this.length; i++) { if (this[i] == val) return i ...

java学习笔记30(IO :缓冲流)

缓冲流: 读取数据大量的文件时,读取的速度慢,java提供了一套缓冲流,提高IO流的效率: 缓冲流分为字节缓冲流和字符缓冲流: 字节输入缓冲流和字节输出缓冲流如下: package com.zs.De ...

c语言10以内位运算,C语言基础知识--位运算相关推荐

  1. 计算机基础知识---位运算的应用

    Author:baiyucraft BLog: baiyucraft's Home 前置学习: 计算机基础知识-位运算的简介   在了解位运算后,我们要明白一点:为什么要学习位运算呢.其实很重要的一个 ...

  2. c语言10以内四则运算,C语言-四则运算

    <C语言-四则运算>由会员分享,可在线阅读,更多相关<C语言-四则运算(10页珍藏版)>请在人人文库网上搜索. 1.四则运算姓名:学 号:班级:1.功能结构图四则运算加法运算减 ...

  3. c语言10以内得加法,10以内加法练习题(最新整理)

    <10以内加法练习题(最新整理)>由会员分享,可在线阅读,更多相关<10以内加法练习题(最新整理)(48页珍藏版)>请在人人文库网上搜索. 1.0+0=1+5=9+0=1+0= ...

  4. {c语言}(2)学好c语言必了解的基础知识《运算和数据类型》

    目录: 运算: 乘除运算符和加减运算符: 除法运算的商和余数: 使用printf函数输入%: 多个转换说明: 赋值运算符: 表达式和赋值表达式: 表达式语句: 数据类型: 数据类型和对象: 整型常量和 ...

  5. c语言 二进制输出_程序员入门C语言,需要掌握的4个基础知识

    C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员的喜爱.随着C语言的普及,后来的开发语言都或多或少地借鉴或遵循了它的一些模式.另外,C语言是计算机编程领域中使用最早的高级语 ...

  6. 要想学好C语言,你必须得懂的基础知识大全!本文将带你深度学习

    很多初学者都会问我,"我想学C,该怎么开始呢?",今天我们就来聊一聊,属于初学者必须懂的知识,希望小伙伴们,能够牢记基础知识,唯有不断努力 才能更加顺利. 基本常识 计算机语言: ...

  7. 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)

    一,堆栈在汇编的作用,以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知,单片机从烧程序到达到一定的工作过程.首先明白为什么要引如"烧"写的过程 ...

  8. Python 位运算及二进制基础知识

    来补点基础知识,这篇讲的是位运算 二进制实际上就是用10进制的数的每一位数字的2的幂数 来看例子: 然后再python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了. 随后,在 ...

  9. 计算机基础知识---位运算的简介

    Author:baiyucraft BLog: baiyucraft's Home 1.什么是位运算   稍微有点计算机基础的都知道一点,在程序中的所有数在计算机内存中都是以二进制的形式存储的.位运算 ...

最新文章

  1. ServiceMesh究竟解决什么问题?
  2. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(10)之素材管理
  3. (转)MFC技巧学习五
  4. [css] 使用sass的方式有哪些?
  5. leetcode - 94. 二叉树的中序遍历
  6. 用simulink分析傅里叶变换、短时傅里叶变换和小波变换
  7. asp.net使用include包含文件中文乱码_C++: 编写自己的头文件
  8. POI 导出导入工具类介绍
  9. Focal loss原理解析
  10. Python 安装 lxml 插件
  11. 5亿次Web攻击 怎么防住的?
  12. 【语音合成】基于matlab比例重叠相加法信号分帧与还原【含Matlab源码 561期】
  13. Aho-Corasick暂存第二篇
  14. 半导体物理学习整理(一)
  15. 提高系统可用性的那些架构策略
  16. python爬去新浪微博_Python爬取新浪微博热搜榜
  17. torch.nn.Embedding(num_embeddings, embedding_dim)的理解
  18. 问题 : 找出直系亲属
  19. 高能所客座用户计算机申请,2020年中科院高能所招收联合培养硕士博士生、客座研究生多名...
  20. 【前端CSS】offsetLeft,Left,clientLeft的区别

热门文章

  1. 程序员实现梦想的三组词汇
  2. iNFTnews|FTX一夜崩塌,但Web3仍前途光明
  3. linux SIGSEGV信号
  4. ORB特征提取和匹配
  5. 使用脚本让开挂玩家电脑死机蓝屏命令
  6. VBa运行c语言程序,VBA从零学习之12——如何调试程序
  7. 探索篇 | C简单实现『字符动画』
  8. Paxos——分布式一致性协议
  9. 乔布斯居然是这样面试我的,你能挺到哪一步?
  10. 新年快到了,送给大家这三大成功定律