社区
C语言
帖子详情
1左移0位有什么用??
juso2011
2012-02-23 03:55:39
1<<GPIO_POWER_OFF,GPIO_POWER_OFF为0.求解??
...全文
2660
14
打赏
收藏
1左移0位有什么用??
1<<GPIO_POWER_OFF,GPIO_POWER_OFF为0.求解??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wopabe
2012-02-24
打赏
举报
回复
移位0位当然没什么用了,不过以后有用
nwpulei
2012-02-24
打赏
举报
回复
如果单纯询问左移0位或右移0位,为何不写一段小程序自己测试一下呢?
hanyunqi
2012-02-24
打赏
举报
回复
1
这应该是ARM的GPIO设置.
所有寄存器设置都是用移位设置的,因为这样比较直观.
如果,你这样设置:
GPIO_xxx = GPIO_xxx | 1
你还得去查寄存器表才知道它是实现了什么功能.
但是,如下设置就会比较直观
GPIO_xxx = GPIO_xxx | 1<<GPIO_POWER_OFF
这样设置,你不必考虑GPIO_POWER_OFF的值是多少,也不用查表就知道它是把GPIO_POWER_OFF位使能了.
TMAC10052120353
2012-02-24
打赏
举报
回复
[Quote=引用 4 楼 downmooner 的回复:]
引用 2 楼 majia2011 的回复:
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
对的,这里define是为了方便以后改成其他值
[/Quote]
++
pathuang68
2012-02-23
打赏
举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
[/Quote]
++
能写程序-会种庄稼
2012-02-23
打赏
举报
回复
2楼正解
AnYidan
2012-02-23
打赏
举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
[/Quote]
++
daviddb7
2012-02-23
打赏
举报
回复
在当前环境下POWER的GPIO刚好是0,对应寄存器的第0位
如果硬件做了修改,GPIO不一样了,可以不修改代码,把这个GPIO_POWER_OFF改为新的GPIO值就可以了。
pubuzhixia
2012-02-23
打赏
举报
回复
通用性代码,code的美观性和易理解性。不必深究。
如果不出所料,应该在GPIO_POWER_OFF define的地方还有一堆类似的define,也用于移位的。
EmbeddedLong
2012-02-23
打赏
举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
[/Quote]
是的,这个在嵌入式底层常常用 在这里可以不写
写了原因有2:
1.就是为了通用。。
2。就是为了明了,
downmooner
2012-02-23
打赏
举报
回复
[Quote=引用 2 楼 majia2011 的回复:]
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
[/Quote]
对的,这里define是为了方便以后改成其他值
赵4老师
2012-02-23
打赏
举报
回复
long a;
for (int i=0;i<32;i++) {
a|=1<<i;//将a的bit i置1
a&=~(1<<i);//将a的bit i清0
}
majia2011
2012-02-23
打赏
举报
回复
GPIO_POWER_OFF在这里是0,换个环境就不一定是0了,这样写是为了代码通用
否则也不用define了
面包大师
2012-02-23
打赏
举报
回复
左移乘以2,右移除以2.
移位其实还分很多种:逻辑移位、循环移位、算术移位。这个左移0位感觉没用
7-10 数组循环
左移
(20 分)
本题要求实现一个对数组进行循环
左移
的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向
左移
m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出循环
左移
m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。 输入样例: 8 3 1 2 3 4 5 6 7 8 输出样例: 4 5 6 7 8 1 2 3
c语言
左移
和右移的示例详解
逻辑移位,简单理解就是物理上按位进行的左右移动,两头用0进行补充,不关心数值的符号问题。 算术移位,同样也是物理上按位进行的左右移动,两头用0进行补充,但必须确保符号位不改变。 算术移位指令 算术移位指令有:算术
左移
SAL(ShiftAlgebraic Left)和算术右移SAR(ShiftAlgebraic Right)。算术移位指令的功能描述如下: (1)算术
左移
SAL把目的操作数的低位向高位移,空出的低位补0; (2)算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补。 逻辑移位指令 此组指令有:逻辑
左移
SHL(ShiftLogical Left)和逻辑右移SHR
Java进制转换和位运算专题
本课程是零基础学JAVA课程的第二阶段的课程,课程内容详实、细致,讲解通俗易懂!内容包括:Java中的进制转换原理,十进制和二进制、八进制、十六进制的互相转换规律,位运算原理,按位与、按位或、按位取反、
左移
、右移、无符号右移的讲解!
数据结构定点数据运算.pdf
一、移位运算 二、加法与减法运算 三、软件技术的兴起和发展 四、除法运算 第三节 定点数运算 定点数运算包括移位、加、减、乘、除几种。 一、移位运算 1.移位的意义 移位运算在日常生活中常见。例如 15 米可写作 1500 厘米,单就数字而言,1500 相当 于小数点
左移
了两位,并在小数点前面添了两个 0;同样 15 也相当于 1500 相对于小数点右 移了两位,并删去了小数点后面的两个 0。可见,当某个十进制数相对于小数点
左移
n位时, 相当于该数乘以 10n;右移n位时,相当于该数除以 10n。 计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n 位
左移
或右移时,其实质就便该数乘以或除以 2n(n=1,2...n)。 移位运算又叫移位操作, 对计算机来说, 有很大的实用价值, 例如, 当计算机没有乘 (除) 运算线路时,可以采用移位和加法相结合,实现乘(除)运算。 计算机中机器数的字长往往是固定的,当机器数
左移
n位或右移n位时,必然会使其n位 低位或n位高位出现空位。那么,对空出的空位应该添补 0 还是 1 呢?这与机器数采用有符 号数还是无符号数有关,对有
C语言中P2=~(1
左移
i)是什么意思?
<<是按位
左移
运算,~是按位取反运算,=是赋值运算。 P2=~(1<<i)的意思是把1换成二进制数,然后
左移
i位,再按位取非,将结果赋给P2,等价于P2=(~(1<<i))。 比如i为3。那么P2= ~(1<<i) = ~(1<<3) 。 先按1个字节来看,1的二进制为00000001,
左移
3位得到00001000。取反得到1111011...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章