c语言的按位运算符怎么操作!?

答案:2  信息版本:手机版

解决时间 2019-10-06 03:32

已解决

2019-10-05 10:30

就是& | ^ - >> << 这些怎么操作。

望高手详解。先给100分。回答得好在加100分!!!!

最好有例子!

最佳答案

2019-10-05 11:33

位运算

在很多系统程序中常要求在位(bit)一级进行运算或处理。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。

一、位运算符C语言提供了六种位运算符:

& 按位与

| 按位或

^ 按位异或

~ 取反

<< 左移

>> 右移

1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。

按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。

main(){

int a=9,b=5,c;

c=a&b;

printf("a=%d\nb=%d\nc=%d\n",a,b,c);

}

2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下: 00001001|00000101

00001101 (十进制为13)可见9|5=13

main(){

int a=9,b=5,c;

c=a|b;

printf("a=%d\nb=%d\nc=%d\n",a,b,c);

}

3. 按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12)

main(){

int a=9;

a=a^15;

printf("a=%d\n",a);

}

4. 求反运算 求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。例如~9的运算为: ~(0000000000001001)结果为:1111111111110110

5. 左移运算 左移运算符“<

高位丢弃,低位补0。例如: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。6. 右移运算右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

例如:设 a=15,a>>2 表示把000001111右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。

main(){

unsigned a,b;

printf("input a number: ");

scanf("%d",&a);

b=a>>5;

b=b&15;

printf("a=%d\tb=%d\n",a,b);

}

请再看一例!

main(){

char a='a',b='b';

int p,c,d;

p=a;

p=(p<<8)|b;

d=p&0xff;

c=(p&0xff00)>>8;

printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);

}

全部回答

1楼

2019-10-05 12:47

&按位与,|按位或,^按位异或,-求补,>>左移,<<右移.

与&一般用来将某数的某些位置零.

设二进制是1101001的数,如果要将第四位置0,就拿它与简单说,c编程的时候输入的都是十进制数字,但如果你要对二进制数字进行运算,就要用这种按位运算的符号。此前编译程序先要把十进制变成二进制,比如int x=67的二进制是这样的。

67->00000000 00000000 00000000 00100011

比如:

&:有0则结果为0。 1&1=1, 其余组合为0

比如67&1=1

|:有1则结果为1。 0|0=0, 其余组合为1

比如67|1=67

^:异或。相反则为1

比如67^1=66

~取反: 1变0,0变1

比如67取反就变成了

楼主你好

&在c语言中是按位与运算 凡是位运算 应该先将对应的数转换为二进制 然后再继续运算

首先楼主注意0177是以0开头的 说明是八进制数

一个八进制数对应三个二进制位

八进制数1对应: 001

八进制数7对应:

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

C语言编程的按位或返回值,c语言的按位运算符怎么操作!?相关推荐

  1. c语言传入的指针无返回值,c语言 关于指针注意事项

    使用指针变量作为函数参数时,只有在获取地址的情况下对元素(*p)进行操作,才能真正地修改变量.因为此时实参传给形参,就是将堆上的申请的首地址传给形参,这样形参和实参都指向了堆上的内存,形参对堆上内存内 ...

  2. c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举

    数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...

  3. c语言自定义函数多个返回值,C语言函数返回值

    C语言函数返回值教程 如果,我们希望函数不返回任何值,那么我们需要显式的指明其返回类型为 C语言函数不返回值 语法 void funcName(paramType1 param1, paramType ...

  4. C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)

    菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...

  5. Swift2.0语言教程之函数的返回值与函数类型

    Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...

  6. ostream作为函数返回值_GO语言基础函数

    GO语言基础–函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数定义 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数 ...

  7. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

  8. c语言求三门课总成绩,C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小...

    C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小 关注:212  答案:3  mip版 解决时间 2021-01-17 10:35 提问者夜落花台 2 ...

  9. 有没有c 或c语言的短期培训学校,根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样...

    根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样 首页 > 软件 > 根河学c语言编程 作者:镀金池   发布时间:2017-11-30 11:02 另外,尽早调 ...

最新文章

  1. Mac下pycharm如何安装tensorflow
  2. 关于git的ssh-key:解决本地多个ssh-key的问题
  3. matlab未定义函数lp,matlab未定义函数或变量(附上源代码)
  4. android 两端对齐,LinearLayout子控件两端对齐
  5. Oracle Scheduler - NLS_ENV
  6. 阿里云mysql服务器太贵_阿里云数据库,跟自己在服务器安装的有什么区别?有人说安装很简单,那为什么要花钱买?...
  7. DataTable 转为ListT集合
  8. macbook oracle 工具,Navicat for Oracle Mac 四种实用工具
  9. IdentityServer4
  10. Mixed Content: The page at ‘xxx‘ was loaded over HTTPS, but requested an insecure resource ‘xxx‘.
  11. pat乙级 1091 N-自守数 (15 分)
  12. TC中编辑程序快捷键
  13. FW:星巴客装B指南_拔剑-浆糊的传说_新浪博客
  14. 金橙子打标卡二次开发应用
  15. 金盾2016(正阳版)播放器机器码替换
  16. java-后端八股文
  17. 3600000毫秒等于多少小时,一小时等于多少毫秒
  18. sever企业版密钥 sql_SQL Server2016企业版 附全版本key(转载)
  19. 1000个瓶子里面999瓶是水,多少次试验确定哪瓶是毒药
  20. 平行投影与透视投影的关系与统一的矩阵表示

热门文章

  1. token 过期刷新令牌_Android token过期刷新处理的方法示例
  2. linux-help命令,查询shell内置命令帮助文档
  3. java怎么实现踢掉在线用户_Java多人在线聊天室(3)— 踢人下线功能
  4. 修改Mysql管理员密码(详细)
  5. 2019年最强大的十大机器学习python库
  6. 抖音跳转微信小程序方法有哪些
  7. java web学习记录(ubuntu18.04 java8 tomcat8)
  8. java 坑_JAVA陷阱---三元表达式潜藏的坑
  9. 聊城大学计算机科学系,聊城大学计算机学院介绍
  10. python 抓包 scapy udp,python+scapy 抓包與解析