加载中...
程序温故
发表于:2010-03-04 | 分类: 嵌入式编程
字数统计: 1.2k | 阅读时长: 4分钟 | 阅读量:

 

常数后缀

用后缀u或U强制把整数转变为无符号整型。用后缀ul或UL强制把整数转变为无符号长整型。  

变量长度

单片机中: unsigned char 一个字节 <255 unsigned int 两个字节 bit PC中: char 两个字节 int 四个字节 short int是2字节 ——————– 如何求一个负数的十六进制码? 都按四个字节算 求1的反码: 1:       000000000 000000000 00000000 00000001 反码:    111111111 111111111 11111111 11111110 反码加1:111111111 111111111 11111111 11111111 所以:-1   FF FF FF FF 负数在十六进制上范围多少 四个字节的最大范围是-2147483648到2147483647 -2147483648对应的十六进制80 00 00 00 -1  FF FF FF FF -2147483648对应80 00 00 00 所以负数对应的十六进制范围为:80 00 00 00 到FF FF FF FF, 其中80 00 00 00 对应的负数最大,为-2147483648 而FF FF FF FF 对应的负数最小,为-1 查看负数十六进制码和对应正数的关系 再比较 +/-1和+/-8: 1:00 00 00 01 -1:FF FF FF FF 加起来进位到1得到0,进位在最低位 -8的十六进制表示: 8:  00 00 00 08  //0000 1000 -8: FF FF FF F8 //1111 1000 加起来也为0,但是进位位在第三位 由一个现有的负数十六进制码,如何找到它代表的意义,对应的正数? 按减去1再取反计算 80 00 00 00 减去1: 7F FF FF FF 取反得正数: 80 00 00 00 即2147483648, 所以计算机将该数视为-2147483648 至于它对应的正数2147483648,刚好超过了long的最大值2147483647,溢出 80 02 00 00 减去1: 80 01 FF FF 取反: 7F FE 00 00 得到对应正数:2147352576 所以计算机视为:-2147352576 另一种算法,还是按照求反,然后加一 80 02 00 00 取反:7F FD FF FF 加上1:7F FE 00 00 得到的一样 -1.2 80 01 07 D1 减去1:80 01 07 D0 求反:7F FE F8 2F 另一种算法: 求反:7F FE F8 2E 加一:7F FE F8 2F 一样的 ————————-

枚举

  如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; enum box box2;//或者简写成box box2; 再有一种就是在声明的时候同时定义。 enum {pencil,pen}box,box2; //在声明的同时进行定义! 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2}; 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如 enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作!

数组 指针

数组名称实质上就是指向数组第一个元素的指针。因此可以直接将其赋值给指针P p=a; 如果要取数组中某一元素的地址则需要 p=&a[i];(i为所需数组元素的下标) 或者 p=a+i; a+i等于&a[i]; a等于a[0] == 指针指向数组然后间接修改数组值 *p a[n] p=&a[0]; 然后可*(p+i)或者p[i]=

上一篇:
编程规范化
下一篇:
midomi,好玩的哼歌搜索
本文目录
本文目录