C 位操作
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C 位操作
时间:2009-10-9
作者:sofa120
注: 转载请说明出处
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、C位操作:利用位操作,可以对字节的每位进行管理以及操作,可以极大的缩小了存储空间,有利于存储空间的利用,在资源严格要求的环境中有极大的帮助。
位操作,一般有:&(位与),|(位或),~(取反),^(位与或),>>(位右移),<<(位左移)。
&(位与),两个位同时为1则结果为1。
|(位或),只要一个位为1则结构为1。
~(取反),顾名思义,变1为0,变0为1。
^(位与或),两位不相同时,结果为1。
>>(位右移)
<<(位左移)
2、位操作的应用:
掩码:利用位与跟掩玛一起作用,起到把除掩玛中位为1的位对称的掩盖。
打开位:利用位或把想置1的位跟1位或,这样起到打开位的作用。通常用来控制硬件的端口。
关闭位:通过跟位与操作,利用0跟1位与就起到关闭位的操作。
转置位:利用位与或的特性,0^B为B,1^1为0,1^1为0,就把想转置的位转置了。
查看一位的值:(必须注意的)首先通过掩玛与或关闭不是查询的位。然后通过比较,就可以知道该位的值。
位移得到相应的位:利用位移把不需要的位去除。
3、位操作的另一种方法是:位字段。它是一个unsigned int或signed int中一组相邻的位。位字段由一个结构体申明,提供每一个字段的名字,即标签,决定每个字段的宽度。
如:
struct
{
unsigned int autfd:1;
unsigned int bldfc:1;
unsigned int undln:1;
unsigned int itals:1;
&nb
相关文档:
这两天看到有人讨论电话键盘上的字母、号码和字母的转换,我也随便写了一段
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 15
char *tbl_itoa[] =
{
"0", // 0
"1", // 1
"ABC", // 2
"DEF", // 3
"GHI", // 4
"JKL", // 5
"MNO", ......
新建一个Win32 Application,并在相应文件夹下新建一个book.mdb, 里面有一个表BookInfo,表中有以下几例:
id:
BookName:
Author:
等;
//------------------------------------------------------------------------------
// Copyright (c) 2009 eryar All rights reserved.
//
// File : Main.cpp
// ......
今天解答一些同学在学开发过程中的普遍问题,就是如何学好一门语言?
我是这样来理解的,要做任何事物,首先要分析为什么要做,只有把核心的,内心的原因找到才能把一件事情做好,否则,你花再多的学费学某种技术仍然会一无所或,从我个人的成长过程来将我是从97年接触计算机,开始学的一踏糊涂,不知道老师在讲什么,不知道学了会有什 ......