BitMap的原理不用多说了。
主要说下位操作。
我们假设每个基础存储单元为char,则BYTESIZE = 8,如果为int则16 or 32。
当设置i时,首先ptr+=i/BYTESIZE,到达要操作的那个char。
然后对*ptr |= 0x01<<(i%BYTESIZE)即可。这里在同一个机器上,可以忽略大小端的问题。
检查的时候,也是首先ptr+=i/BYTESIZE,然后查 (*ptr&0x01<<(i%BYTESIZE[......]
BitMap的原理不用多说了。
主要说下位操作。
我们假设每个基础存储单元为char,则BYTESIZE = 8,如果为int则16 or 32。
当设置i时,首先ptr+=i/BYTESIZE,到达要操作的那个char。
然后对*ptr |= 0x01<<(i%BYTESIZE)即可。这里在同一个机器上,可以忽略大小端的问题。
检查的时候,也是首先ptr+=i/BYTESIZE,然后查 (*ptr&0x01<<(i%BYTESIZE[......]
int array[m][n];
这个二维数组,可以堪称是m个长度为n的一维数组。
在内存中排列的方式是[0][1]..[n-1] [0][1]...[n-1]....一共m组这样的。
在访问时,array[m][n] = *(*(array+m)+n),对N维的数组取值时要用到N个*。
参考了这个:http://blog.csdn.net/hai836045106/article/details/6729756[......]
转自:http://www.linuxdiyf.com/viewarticle.php?id=63720
学习了LINUX下用C语言遍历文件夹,一些心得
struct dirent中的几个成员:
d_type:4表示为目录,8表示为文件
d_reclen:16表示子目录或文件,24表示非子目录
d_name:目录或文件的名称
具体代码如下,仅供参考
#include <stdio.h>
#include <dirent.h>
#i[......]
没想到真的能写出来,因为这是第一次用类的方式封装描述。真的是第一次写类。而且加上二叉树这个比较难描述的东东,确实费了不少劲。发现面向对象确实是很好的。真的是让用户无需关心数据细节。当然可能是还没习惯,写得有点慢。
期间,递归的不熟练导致犯下了几次严重错误,好在自己都纠正了。
但是还有以下没有解决:
1、如何在类中调用函数指针?
2、Parent函数能不能用递归描述?
...
若有高手看到指点一二,不胜感激~
BiTree.h:定义了二叉类 BiTree以及基本操作
#in[......]
小练习 没什么算法或者数据结构
#include <iostream>
namespace Fib
{
long Fib1(int n);
}
namespace Error
{
void ShowErr(int n);
}
long Fib::Fib1(int n)
{
int i;
long fib1=1,fib2=1,fib3=1;
if(n<=0||n>19)
 [......]