C语言编程的按位或返回值,c语言的按位运算符怎么操作!?
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语言的按位运算符怎么操作!?相关推荐
- c语言传入的指针无返回值,c语言 关于指针注意事项
使用指针变量作为函数参数时,只有在获取地址的情况下对元素(*p)进行操作,才能真正地修改变量.因为此时实参传给形参,就是将堆上的申请的首地址传给形参,这样形参和实参都指向了堆上的内存,形参对堆上内存内 ...
- c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举
数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- c语言自定义函数多个返回值,C语言函数返回值
C语言函数返回值教程 如果,我们希望函数不返回任何值,那么我们需要显式的指明其返回类型为 C语言函数不返回值 语法 void funcName(paramType1 param1, paramType ...
- C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)
菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...
- Swift2.0语言教程之函数的返回值与函数类型
Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...
- ostream作为函数返回值_GO语言基础函数
GO语言基础–函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数定义 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数 ...
- 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc
完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...
- c语言求三门课总成绩,C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小...
C语言编程,求高手 编写程序求某班20位学生三门课(英语,数学,语文)总成绩,并按照总成绩从大到小 关注:212 答案:3 mip版 解决时间 2021-01-17 10:35 提问者夜落花台 2 ...
- 有没有c 或c语言的短期培训学校,根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样...
根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样 首页 > 软件 > 根河学c语言编程 作者:镀金池 发布时间:2017-11-30 11:02 另外,尽早调 ...
最新文章
- Mac下pycharm如何安装tensorflow
- 关于git的ssh-key:解决本地多个ssh-key的问题
- matlab未定义函数lp,matlab未定义函数或变量(附上源代码)
- android 两端对齐,LinearLayout子控件两端对齐
- Oracle Scheduler - NLS_ENV
- 阿里云mysql服务器太贵_阿里云数据库,跟自己在服务器安装的有什么区别?有人说安装很简单,那为什么要花钱买?...
- DataTable 转为ListT集合
- macbook oracle 工具,Navicat for Oracle Mac 四种实用工具
- IdentityServer4
- Mixed Content: The page at ‘xxx‘ was loaded over HTTPS, but requested an insecure resource ‘xxx‘.
- pat乙级 1091 N-自守数 (15 分)
- TC中编辑程序快捷键
- FW:星巴客装B指南_拔剑-浆糊的传说_新浪博客
- 金橙子打标卡二次开发应用
- 金盾2016(正阳版)播放器机器码替换
- java-后端八股文
- 3600000毫秒等于多少小时,一小时等于多少毫秒
- sever企业版密钥 sql_SQL Server2016企业版 附全版本key(转载)
- 1000个瓶子里面999瓶是水,多少次试验确定哪瓶是毒药
- 平行投影与透视投影的关系与统一的矩阵表示
热门文章
- token 过期刷新令牌_Android token过期刷新处理的方法示例
- linux-help命令,查询shell内置命令帮助文档
- java怎么实现踢掉在线用户_Java多人在线聊天室(3)— 踢人下线功能
- 修改Mysql管理员密码(详细)
- 2019年最强大的十大机器学习python库
- 抖音跳转微信小程序方法有哪些
- java web学习记录(ubuntu18.04 java8 tomcat8)
- java 坑_JAVA陷阱---三元表达式潜藏的坑
- 聊城大学计算机科学系,聊城大学计算机学院介绍
- python 抓包 scapy udp,python+scapy 抓包與解析