zoukankan      html  css  js  c++  java
  • 数据的二进制表示和位运算(算数&逻辑)

    在写嵌入式的程序中,常会将数据定义为unsigned int,这样定义有什么好处呢?下面从逻辑右移和算术右移的角度进行分析。

    【分析】

    1 逻辑右移和算术右移

    逻辑右移,移走的位填充为0;算术右移,移走的位填充与符号位有关,例如如果为负数,则移走的位填充为1。

    2 unsigned int 和 int

    C语言的标准指出,无符号数执行的所有移位操作都是逻辑的,而对于有符号数,采用哪种方式取决于编译器。算术左移和逻辑左移是相同的,而算术右移和逻辑右移,取决于符号位。因此,一个程序如果使用了有符号数,是不可移植的。嵌入式的程序通常采用交叉编译开发,如果定义为有符号的,就无法保证右移操作能跨平台使用,这就是为什么用unsigned int,而不用int的主要原因。

  • 相关阅读:
    维护win10注册表
    win10操作技巧
    无处不网络
    事件驱动编程思想
    流程控制之if...else
    python----GIL的概念
    并发与同步异步的概念
    实现并发join的方法
    线程的调用
    三元运算符
  • 原文地址:https://www.cnblogs.com/CreatorKou/p/8697318.html
Copyright © 2011-2022 走看看