![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算与嵌入式编程
赏星乐事
这个作者很懒,什么都没留下…
展开
-
如何用C语言编写死循环
解法1 while(1) { } 解法2 for(; ; ) { } 解法3 用goto Loop: …. goto Loop;原创 2017-07-20 11:47:41 · 4356 阅读 · 0 评论 -
访问特定位置的内存
源代码如下 int *ptr; ptr = (int *)0x67a9; *ptr = 0xaa55; 解法二 *(int * const)0x67a9=0xaa55;原创 2017-07-20 11:48:01 · 354 阅读 · 0 评论 -
处理器字长
unsigned int zero = 0; unsigned int compzero = 0xFFFF; 对于一个int型不是16位的处理器来说,上面的代码是不正确的。应该改成如下: unsigned int compzero = ~0; 整数的自动转换 Void foo(void) { unsigned int a = 6; int b = -20;原创 2017-07-20 11:48:22 · 1398 阅读 · 0 评论 -
c++中虚析构函数的作用
#include using namespace std; class Base{ public: Base(){ cout"这是父亲的构造函数"<<endl; } virtual ~Base() { cout"这是父亲的析构函数"<<endl; }原创 2017-07-20 11:48:43 · 245 阅读 · 0 评论 -
位制转换
写出下面代码的输出结果#include <stdio.h> int main() { int i = 5.01; float f = 5; printf("%f\n",5); //内存访问越界,4个字节存放5,读取却是8个字节 //0.000000 printf("%lf\n",5.0l); //5.000000 printf("%f\n",f); /原创 2017-07-19 10:15:34 · 321 阅读 · 0 评论 -
设置或清除特定的位
问题 嵌入式系统总是要求用户对变量或是寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第二个设置b的bit3。在以上两种操作中,要保持其他位不变; 分析 用bit fields. 缺点代码移植性差,代码是不可重用的。 用#define和bit masks操作。有极高的可移植性。 代码#define BIT3 (0X1<<3) static int a; void原创 2017-07-19 10:36:42 · 424 阅读 · 0 评论 -
计算一个字节中有多少位被置1
代码#include <stdio.h> #define BIT7 (0x1<<7) int calculate(unsigned char c) { int count = 0; int i = 0; unsigned char comp = BIT7; for(i = 0;i<sizeof(c)*8;i++) { if((c&comp)!=原创 2017-07-19 14:53:41 · 3526 阅读 · 0 评论