• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

有没有大佬讲一下位带操作?

d3955135fdbea96e 2019-02-25 浏览量:805
有没有大佬讲一下位带操作?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 比如 32 位 arm :

    0x28000000,这个地址对应的内存空间,内有 32 个位,和

    0x88000000- 0x88000080 这 32 个 32 位内存空间  对应

    需要给 0x28000000 的 [0]  位置1,就 直接 (*(int*)(0x88000000)) = 1

    需要给 0x28000000 的 [1]  位置1,就 直接 (*(int*)(0x88000004)) = 1


    0x28000000 中的每一位,对应一个 4 字节长度的内存空间

    访问 0x28000000 中的每一位,等价于 操作 0x88000000 - 0x88000080 中的数据

    • 发布于 2019-02-25
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:11
  • 就是直接操作寄存器地址来实现的,你可以找到位带操作的宏定义就能理解了
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 类似不能直接操作而取一个别名来进行操作,就是对IO端口进行操作。
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个位操作在51里面直接用SBIT位定义还有就是P2^1这种方式进行处理,但是在32以及AVR中没有位这种直接操作,所以打个比方你想让PB1为高那么DDRB|=1<<1或者用BIT(x)直接说明位移,低电平则是DDRB&=~(1<<1)这些都是固定用法,在数电里会有,你可以背下来,然后理解一下,望采纳
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以看下正点原子的教程,有介绍
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以看看下面的介绍http://www.eeworld.com.cn/mcu/2018/ic-news101641842.html,或者看看原子和野火的教程!
    • 发布于2019-02-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 位带操作其实就是对字节数据某个位的操作,一般是需要两个机器周期的运算。

    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 位带操作说的玄乎,实际上就是读写寄存器啊。如果还不理解,可以直接上代码看,非常简单的。
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 位带操作就是对寄存器那些某个位进行操作,不影响其它位
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 位操作,就是一个位一个位的操作寄存器,不影响其他的位
    • 发布于2019-03-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

有没有大佬讲一下位带操作?