2015年3月3日

一些知识点2015.3.3

摘要: 1.子进程不创建父进程的多线程。fork的是父中调用fork的那个线程。2.子进程继承父的互斥锁(条件变量),但子进程并不清楚这些。3.一个进程的每个线程都可以独立地设置信号掩码,但所有线程共享信号和信号处理函数。4.内联函数的代码在符号表。5.c++中临时量是const的。 阅读全文

posted @ 2015-03-03 09:55 kevin_kang 阅读(136) 评论(0) 推荐(0) 编辑

2015年2月22日

宽容

摘要: 每年春晚看完大家都不满意,父母都说以前的好,为什么?创新 没有新人,没有新形式节目,为什么没有,国内越来越不允许失败,上面对创新失败不宽容。与人也一样,允许别人学习,创新,不要只要书上东西,对人宽容,对事宽容。 阅读全文

posted @ 2015-02-22 20:42 kevin_kang 阅读(125) 评论(0) 推荐(0) 编辑

2014年4月19日

中断与信号

摘要: 问题:既然说信号是中断在进程中的模拟,那为什么中断有同步和异步,而信号说是进程间异步通信机制?中断:是指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应该被注意,这种情况就称为中断(wiki)。中断改变处理器执行的指令顺序。(ULK3)中断分为同步中断和异步中断: 同步中断(异常,inte... 阅读全文

posted @ 2014-04-19 22:37 kevin_kang 阅读(1355) 评论(0) 推荐(0) 编辑

2013年7月10日

在二叉树中找出和为某值的所有路径

摘要: 1 #include 2 #include 3 /*在二叉树中找出和为某值的所有路径*/ 4 /*从树的根节点开始往下访问一直到叶节点所经过的所有节点形成一条路径*/ 5 /*分析,二叉树肯定要递归,遍历每条路径,得到每条路径和。 6 *路径的存储用栈结构比较合适,链表,数组都可。 7 */ 8 typedef struct node{ 9 int value; 10 struct node *left; 11 struct node *right; 12 }node; 13 14 static int total; 15 #define ... 阅读全文

posted @ 2013-07-10 08:14 kevin_kang 阅读(340) 评论(0) 推荐(0) 编辑

求子数组最大和

摘要: 1 #include 2 #include 3 /*求子数组最大和,时间复杂度o(n),数组有正、负整数*/ 4 /*分析,要求时间复杂度o(n),则只能读一次数组,顺序求解 5 *因为有正数,所有排除负和。 6 *可以使用动态机分析。max(x[i])分两种情况,max(x[i-1])0 7 */ 8 #define len(x) (sizeof(x)/sizeof(x[0])) 9 int bigsum_subarray(int *x, int len)10 {11 if(x == NULL || len total)22 total = tm... 阅读全文

posted @ 2013-07-10 08:13 kevin_kang 阅读(197) 评论(0) 推荐(0) 编辑

min函数的栈

摘要: 1 #include 2 #include 3 /*min函数的栈,可去栈最小值,pup,push,min时间复杂度为o(1)*/ 4 /* 5 * 分析,程序一般都是空间换时间,除了非常好的算法。 6 * 所以可以弄2个栈解决问题。 7 * 下面是链表实现的栈,简单点的用静态动态数组。 8 * 写的比较乱,因为从原来栈程序改的,只是表示一种思路, 9 * 没有根据题目编写10 */11 typedef struct stack_node{12 int value;13 struct stack_node *next;14 }stack_node;15 16 ... 阅读全文

posted @ 2013-07-10 08:12 kevin_kang 阅读(165) 评论(0) 推荐(0) 编辑

2013年7月8日

二叉树转换链表

摘要: 1 #include 2 #include 3 4 typedef struct node{ 5 int num; 6 struct node *left; 7 struct node *right; 8 }node; 9 10 void build_node(node **anode, int num) 11 { 12 if(*anode == NULL){ 13 (*anode) = calloc(1, sizeof(node)); 14 if((*anode) == NULL){ 15 ... 阅读全文

posted @ 2013-07-08 22:25 kevin_kang 阅读(206) 评论(0) 推荐(0) 编辑

2013年7月5日

stddef.h(c标准库)

摘要: 1 /*my_stddef.h*/ 2 /* 3 * 宏NULL。不指向程序声明或分配的任何数据对象的数据对象指针的值。0,0L,(void *)0(与函数指针不兼容)。 4 * 宏offsetof,确定一个结构成员和这个结构的起始位置的偏移量(以字节为单位),展开为一个size_t类型的整值常量表达式,表驱动函数。 5 * ptrdiff_t:2个指针相减的结果的有符号整数类型。(2个指针不能相加,标准定义的)。不用,移植性不好。 6 * size_t:sizeof操作符的记过的无符号整数类型。非常有用。 7 * wchar_t:整值类型,它范围内的值可以表示最大扩展字符集中所有... 阅读全文

posted @ 2013-07-05 23:41 kevin_kang 阅读(508) 评论(0) 推荐(0) 编辑

2013年7月4日

stdarg.h(c标准库)

摘要: 1 /*my_stdarg.h*/ 2 /* 3 * c允许定义可接受一个可变参数列表的函数。而且是自己定义的额外的函数。 4 * stdarg.h定义的宏。允许在任何时候从头到尾地便利一个附加参数列表。 5 * 在遇到每一个参数之前,必须知道它的类型,但在一个给定的调用发生之前,不必知道它的细节。 6 * 宏va_start,一个函数必须至少声明一个固定的参数。宏va_start引用了最后一个固定参数所以它能够对可变参数进行定位, 7 * 访问所有未命名的参数之前调用宏。对类型va_list ap初始化。 8 * 宏va_arg,每一次调用都会修改ap,每次调用这个宏展开的表达... 阅读全文

posted @ 2013-07-04 22:59 kevin_kang 阅读(680) 评论(0) 推荐(0) 编辑

2013年7月3日

locale.h(c标准库)

摘要: 本地化设置,基本不用,未详细研究 阅读全文

posted @ 2013-07-03 21:26 kevin_kang 阅读(382) 评论(0) 推荐(0) 编辑

signal.h(c标准库)

摘要: 看代码,代码和操作系统关系还是很大,未测试 1 /*my_signal.h*/ 2 /* 3 * 信号是程序执行过程中发生的异常事件。 4 * 同步信号的产生是因为程序自身的某些动作,例如除零或不正当地访问存储器。 5 * 异步信号是由程序外部的行为引起的。如敲击提示键,或另一个程序给你的程序发的信号,都会引发一个异步信号。 6 * 7 * 程序不能屏蔽的信号要求立即得到处理。不处理,终止且向标准错误流输出一条错误信息。 8 * 9 * signal.h定义了一个无穷信号集的各种编码值。声明2个函数。10 * raise,报告一个同步信号。11 * signal,指定一种信... 阅读全文

posted @ 2013-07-03 21:24 kevin_kang 阅读(593) 评论(0) 推荐(0) 编辑

setjmp.h(c标准库)

摘要: 主要看了思路,代码未测试。 1 /*yvals.h*/ 2 #define _YVALS_H_ 3 4 #define MYEDOM 33 5 #define MYERANGE 34 6 #define MYEFPOS 35 7 #define MYERRMAX 36 8 9 #define _ILONG 110 #define _CSIGN 111 #define _MBMAX 212 13 #define _JBFP 114 #define _JBMOV 6015 #define _JBOFF 416 #define _NSETJMP 1717 18 #de... 阅读全文

posted @ 2013-07-03 21:20 kevin_kang 阅读(599) 评论(0) 推荐(0) 编辑

float.h(c标准库)

摘要: 1 /*my_float.h*/ 2 /* 3 * 系统保留浮点数一种类型,所以c语言对任何涉及浮点运算都产生double类型的结果, 4 * 即时连个操作数都为float类型。 5 * 6 * 上溢、下溢、有效值丢失对浮点算术是固有的。 7 * 变化,不同机器相同的浮点运算结果可能不同。依赖于两个机器的舍入方式。一般机器 8 * 使用快餐式浮点算术计算方法。 9 * float.h主要是补充limit.h10 * float.h的宏,一般最复杂的数值程序才需关心。11 */12 #ifndef _MY_FLOAT_H_13 #define _MY_FLOAT_H_14 #... 阅读全文

posted @ 2013-07-03 21:17 kevin_kang 阅读(297) 评论(0) 推荐(1) 编辑

math.h(c标准库)

摘要: 1 /*my_match.h*/ 2 /* 3 * math.h编写需要较深的数学知识,而且大部分情况很少用。 4 * 所以讲用到的函数罗列,不进行研究。 5 * 定义域错误,errno设置为EDOM。值域错误,上溢函数返回正确的符号的double最大值,errno设置为ERANGE,下溢函数返回0. 6 */ 7 double ceil(double arg);/*返回不小于arg的最小整数*/ 8 double floor(double arg);/*返回不大于arg的最大整数*/ 9 double fabs(double atg);/*返回arg的绝对值*/10 double ... 阅读全文

posted @ 2013-07-03 21:16 kevin_kang 阅读(267) 评论(0) 推荐(0) 编辑

limits.h(c标准库)

摘要: 1 /*yvals.h*/ 2 #define _YVALS_H_ 3 4 #define MYEDOM 33 5 #define MYERANGE 34 6 #define MYEFPOS 35 7 #define MYERRMAX 36 8 9 #define _ILONG 110 #define _CSIGN 111 #define _MBMAX 2 1 /*my_limits.h 8-bit version*/ 2 /* 3 * c中标量数据类型要以一种对每个计算机体系结构都很自然的方式表示。 4 * 程序选择效率更高的类型: 5 * #if VAL_MIN ... 阅读全文

posted @ 2013-07-03 21:14 kevin_kang 阅读(561) 评论(0) 推荐(0) 编辑

errno.h(c标准库)

摘要: 1 /*yvals.h*/2 #define _YVALS_H_3 4 #define MYEDOM 335 #define MYERANGE 346 #define MYEFPOS 357 #define MYERRMAX 36 1 #define _MY_ERRNO_H_ 2 /* 3 * 这种宏保护与上面的差异。"yvals.h"会被几个标准头文件包含, 4 * 它可能在一个预处理中被多次请求,一旦"yvals.h"变为预处理的一部分, 5 * 宏保护就会跳过#include预处理指令。这个头文件也就不会被重复地读入 6 */ 7 #ifndef 阅读全文

posted @ 2013-07-03 21:12 kevin_kang 阅读(316) 评论(0) 推荐(0) 编辑

ctype.h(c标准库)

摘要: 1 /*my_ctype.h*/ 2 #ifndef _MY_CTYPE_H_ 3 #define _MY_CTYPE_H_ 4 5 /* 6 * 字符类别 7 * 数字,0-9之间的十进制数;十六进制数字,数字+a-f或A-F; 8 * 小写字母,a-z;大写字母,A-Z;字母,小写+大写字母; 9 * 字母数字,字母+数组;图形字符,占据一个打印位置,输出到显示设备时可见的字符。 10 * 标点符号,非字母数字的图形字符,29个; 11 * 打印字符,图形字符或者空格符;空白,空格字符和5个标准的运动控制字符(换页符FF,换行符NL,回车符CR,水平制表符... 阅读全文

posted @ 2013-07-03 21:08 kevin_kang 阅读(784) 评论(0) 推荐(0) 编辑

2013年6月29日

assert.h(c标准库)

摘要: 1 /*my_assert.h*/ 2 #undef my_assert 3 #ifdef NDEBUG 4 #define my_assert(test) ((void)0) 5 #else 6 void my_fassert(char *); 7 /*__LINE__是一个十进制数字常,需转换为字符串字面量*/ 8 #define STR(x) VAL(x) 9 #define VAL(x) #x10 #define my_assert(test) ((test) ? (void) 0 \11 : my_fassert(__... 阅读全文

posted @ 2013-06-29 13:58 kevin_kang 阅读(443) 评论(0) 推荐(0) 编辑

2013年6月24日

学习环境搭建之sourceinsight集成编译器

摘要: windows下安装gcc编译环境minGW,安装codeblocks默认安装此编译器。windows设置,用户变量设置include,lib;系统变量PATH添加minGW的bin路径。sourceinsight设置,添加快捷方式View->Toolbars->Toggle build toolbar;设置buildproject,cleanbuild,compilefiles,runproject。 设置方式,options->custom commands,选择相应命令,Run填写mingw32-make.exe all/clean/program(自己定义的,但要和m 阅读全文

posted @ 2013-06-24 22:10 kevin_kang 阅读(3078) 评论(0) 推荐(0) 编辑

c语言基础知识点记

摘要: 1.c语言命名限制,命名只能包含字母、数字及下划线,且首位不能是数字; 看上去非常完美的程序,是什么导致了编程程序不通过? 1 #include 2 3 void OS_Solaris_print() 4 { 5 printf("Solaris - Sun Microsystems\n"); 6 } 7 8 void OS_Windows_print() 9 {10 printf("Windows - Microsoft\n");11 }12 13 void OS_HP-UX_print()14 {15 printf("HP-UX - Hewl 阅读全文

posted @ 2013-06-24 18:42 kevin_kang 阅读(157) 评论(0) 推荐(0) 编辑

2013年6月22日

学习环境搭建之Vmware player && putty

摘要: 下载linux的vmware版本,懒的安装,下了backtrack5虚拟版本,网络设置桥连接或NAT连接,ssh开启等等。可以ping通,但putty连接报软件错误,我还以为是putty版本问题,经测试不是。后来backtrack ssh连接自己,发现也报错。通过不懈google,发现是backtrack默认没有开启ssh远程连接。下面命令开启。#/etc/init.d/ssh restart#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key#sshd-ge 阅读全文

posted @ 2013-06-22 23:36 kevin_kang 阅读(220) 评论(0) 推荐(0) 编辑

2013年3月9日

sql执行顺序(mysql学习笔记)

摘要: 由一个需求作为引子,求移动平均。 原来的类由SAS写的,好像是存入一个数组来算,让我写sql,开始想就是过程编程思想,一步一步来,用游标,太烦了,所以思考了会,发现对sql执行步骤了解太少,看完说sql执行步骤说明,发现用很简单的一句sql就可以实现。下面是mysql的sql执行步骤(标准sql肯定相同,只是有一些mysql的扩展)。(8)select (9)distinct (1)from (3)join(2)on(4)where(5)group by(6)with[cube|rollup](7)having(10)order by(11)limit每步都会产生一张虚拟表,作为下一步的输.. 阅读全文

posted @ 2013-03-09 17:32 kevin_kang 阅读(345) 评论(0) 推荐(0) 编辑

2013年1月22日

数组未退化为指针的三种例外

摘要: 今天无意中看到以前的代码,关于指针数组的一些知识点又忘了,记录一下,查缺补漏。数组在代码中一般会退化为指向该数组第一个元素的指针,除了以下三种情况(C标准中有说明):1,sizeof关键字后。char a[5], sizeof(a)的值为5,并不是指针所占内存的大小。2,&符号后。char a[5], &a+1的值为&a[0]+5*sizeof(char),并不是&a[0]+1(即a+1)。3,作为初始化字符数组的字符串常量(字符串字面量)。char a[5] = "abcde",这句代码在编译器中是将在常量区的“abcde"拷贝给 阅读全文

posted @ 2013-01-22 21:08 kevin_kang 阅读(156) 评论(0) 推荐(0) 编辑

2013年1月19日

指针对值的修改

摘要: 今天看程序时对二级指针有些疑问,写了个小测试,记录一下。#include struct list{ int num; struct list *next;};int main(){ struct list list, list2, *head,**head2, *cur, **cur2; list.num = -2; list.next = &list2; list2.num = 3; list2.next = NULL; head = &list; head2 = &head; cur2 = head2; cur = *cur... 阅读全文

posted @ 2013-01-19 00:52 kevin_kang 阅读(477) 评论(0) 推荐(0) 编辑

2012年7月17日

数组与指针(一)

摘要: 今天写程序,碰到的,以前只看到过,写到了才想起来不能这么写...例:#include #include void test(char *buf){ buf = 'a';//正确,一维数组作为实参传入时,自动转为指针。}int main(void){ char buf[1024]; memset(buf, 0, sizeof(buf)); buf = 'a';//错误,数组名不能作为左值 test(buf); return;} 阅读全文

posted @ 2012-07-17 22:09 kevin_kang 阅读(165) 评论(0) 推荐(0) 编辑

my_strlen

摘要: 有人问我一条语句怎么实现实现strlen功能...,想了一会... 用递归实现的。int my_strlen(const char *str){ return *str?1+my_strlen(str+1):0;} 阅读全文

posted @ 2012-07-17 21:02 kevin_kang 阅读(151) 评论(0) 推荐(0) 编辑

pclint集成之source insight配置

摘要: unix下有命令lint(有的也没,AIX就有),但在unix下找大型程序waring,error比较慢,所以集成到source insight下修改,关于软件下载安装网上教程比较多就不写了。 pclint安装好后,可以不用图形界面配置,直接写配置文件,一个是std.lnt,一个是options.lnt,关于source insight的命令添加pclint的帮助有说明,网上教程也比较多。 std.lnt:(用的是codeblocks的库) D:\lint\lnt\co-mwwin32.lnt D:\lint\options.lnt -si4 -sp4 -i"C:\Program F 阅读全文

posted @ 2012-07-17 19:59 kevin_kang 阅读(1834) 评论(0) 推荐(0) 编辑

2012年7月14日

ultraedit连接UNIX

摘要: 今天登录www.unix-center.net,因为没有root权限,vi功能不是很全面,所以使用ultraedit连接unix来做编辑器,以前只听别人说过,没有用过,进入尝试了一下,很不错。 ultraedit安装好后(需要在安装目录下注册regsvr32 wodFtpDLX.dll),建立账号,协议使用SFTP,其他的服务器,账号,密码填好,可以设置二进制传输,最好本地复制目录设置好,这样可以在本地保存一份。 在配置里设置新建文件时格式为UNIX的,这样上次之unix时行后无回车符(0x0D即^M); 阅读全文

posted @ 2012-07-14 18:31 kevin_kang 阅读(233) 评论(0) 推荐(0) 编辑

开放源代码技术开放实验室(免费unix/linux环境)

摘要: 个人unix/linu环境搭建不外乎那几种,直接装系统(单系统双系统...),虚拟系统(虚拟机上装unix/linux,cygwin等等),而在工作中最常用的是使用终端远程登录。 在非工作环境中,使用终端远程登录unix/linux有一定限制(工作使用服务器一般不联广域网,或者在上面测试会影响正常任务等)。所以在搜索引擎上找了找,还真发现一个好东西。看来中国也有仁人志士,只是大环境所致... 开放源代码技术开放实验室,蒋清野,网址www.unix-center.net,注册好后,可使用终端(putty等)远程登录各种unix/linux环境,平时学习测试够用了。 阅读全文

posted @ 2012-07-14 14:16 kevin_kang 阅读(567) 评论(0) 推荐(0) 编辑

2012年7月12日

类型自动转换

摘要: 同一句语句或表达式如果使用了多种类型的变量和常量(类型混用),C 会自动把它们转换成同一种类型。以下是自动类型转换的基本规则:1. 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会自动转换成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsigned short 被转换成 unsigned int)。因为它们被转换成表示范围更大的类型,故而把这种转换称为“升级(promotion)”。2. 按照从高到低的顺序给各种数据类型分等级,依次为:long double 阅读全文

posted @ 2012-07-12 20:19 kevin_kang 阅读(474) 评论(0) 推荐(0) 编辑

2012年7月11日

内存对齐

摘要: 内存对齐的原因主要是cpu读取数据一次是某个数的整数倍(一般来说32位机是4个字节,64位位8个字节),所以如果未对齐,要读取多次,浪费效率。缺省情况下,编译器默认将结构、栈中的成员数据进行内存对齐,很多unix平台上cc编译器要求类型必须对齐,但linux下gcc编译器等可以不对齐。(例如)int... 阅读全文

posted @ 2012-07-11 21:57 kevin_kang 阅读(169) 评论(0) 推荐(0) 编辑

const修饰实参形参

摘要: 实参char *s与形参const char *p是相容的,标准库字符串函数很多都是。但实参char **s与形参const char **p并不相容。 在ASCI C标准中讲述约束条件的小结中有这么一句话:每个实参都应该具有自己的类型,这样它的值就可以赋值给与它所对应的形参类型对象(该对象的类型不能含有限定符)。 所以说参数传递过程类似于赋值。 标准中关于简单赋值的部分描述下列约束条件:要时赋值形式合法必须满足两个操作数都是指向有限定符或无限定符的相容类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符。 所以说实参char *能与形参const char *匹... 阅读全文

posted @ 2012-07-11 21:31 kevin_kang 阅读(1230) 评论(0) 推荐(0) 编辑

2012年7月10日

NULL、NUL、EOF

摘要: NULL是C语言库函数中的一个宏,在,在stddef.h中定义,#define NULL 0or#define NULL ((void *)0),不同的场合不同含义。NUL是ASCII字符集中第一个字符,对应值为0,‘\0’。例如char c = 0等同于char c =‘\0’,NUL在C语言库函数并没有定义为宏。EOF也是C语言库函数中定义的一个宏,在stdio.h中定义,#define EOF (-1),在windows一下 Ctrl+Z,unix下Ctrl+D; 阅读全文

posted @ 2012-07-10 21:34 kevin_kang 阅读(422) 评论(0) 推荐(0) 编辑

2012年7月6日

二进制读取文件注意点

摘要: 查看以前写的代码时,以前碰到的问题要点记录。fopen()函数打开文件时,”rb"和"r"的区别是,b代码二进制读取,r时是ASCI文本读取,rb是二进制读取,文本读取的时候,在windows下因为行结束符为0X0D0A,所以如果最后一个为0X0D,会自动加上0X0A。如果以结构形式读取文件,但文件最后一行忘了回车,就行结束符,最后一行是不读取的。 阅读全文

posted @ 2012-07-06 19:35 kevin_kang 阅读(169) 评论(0) 推荐(0) 编辑

const和define的区别

摘要: 今天查看以前的代码,进行优化,回想到const和define一些区别,记录下来。1.const是关键字,define不是关键字。2.const定义的是只读变量,不是常量,define宏定义的是常量,变量不能作为定义数组的维数,也不能放在case关键字后面,因为它是只读的初始化后不能更改。3.const只读变量只有一份内存拷贝,只是给出对应的内存地址,define在预编译阶段进行替换。4.const定义的只读变量有类型,define宏没有类型。const修饰指针,将类型省去看修饰的类型,如constint *i,修饰的*i,所以i指向的内容只读不可变。 阅读全文

posted @ 2012-07-06 19:28 kevin_kang 阅读(205) 评论(0) 推荐(0) 编辑

2012年7月5日

二分法代码

摘要: 今天又看以前写的代码,发现一段二分法代码,有些臃肿,改了一下,记录在此,以后可看。代码主要用查找数组中对应值的下标,如果找内容的可以用库函数bsearch();int searchIndex(const void *key, const void *base, size_t num, size_t size){ size_t start = 0, end = num - 1; int result; while(start >1; result = memcmp(key, base+mid*size, size); if(result > ... 阅读全文

posted @ 2012-07-05 22:46 kevin_kang 阅读(339) 评论(0) 推荐(0) 编辑

strtok()思考

摘要: 今天写一个比较函数,两个key前面相同,后面空格数目不同,不固定,所以写一个只比较空格前内容的函数,用strtok(),碰到一个知道但没想过的问题,记录下来。#include #include int main(void){ char *ch1 = "abcdef"; char *ch2 = "cd"; char *ch3 = NULL; ch3 = strtok(ch1, ch2); return 0;} 这样编译是没问题的,但执行会段错误。因为strtok()的原型是char *strtok(char *cs, const char *ct)... 阅读全文

posted @ 2012-07-05 22:36 kevin_kang 阅读(172) 评论(0) 推荐(0) 编辑

2012年2月5日

解答C笔试题

摘要: //(忘了那看的)解答自己写的//1.改错(5分)void test(){ char str[10]; char* str1 = "0123456789"; strcpy(str, str1);}//10->11 or strcpy(str, str1)->strncpy(str, str1, 10);//2.改错(5分)void test(){ char str[10], str1[10]; for( int i = 0; i strncpy(str1, str, 10);//3.读程序,写出结果(5分)int sum(int a){ int c = 0; s 阅读全文

posted @ 2012-02-05 20:43 kevin_kang 阅读(181) 评论(0) 推荐(0) 编辑

2011年12月29日

位操作题

摘要: 1./*2011/12/29 星期四 20:34:42*///1,求b值(6)int test(){ int a = 63, b = 0; while(a) { b++; a = a & (a - 1); } return b;}/* c语言的操作符真心多,此题主要涉及位操作符,位操作符有6中:&(AND与) |(OR或) ^(XOR异或),~(NOT取反),>>(右移),<<(左移); &,当两个位进行AND操作时,如果两个位都是1,结果为1,否则结果为0; |,当两个位进行OR操作时,如果两个位都是0,结果为0,否则结果为1; ^,当两个位进 阅读全文

posted @ 2011-12-29 22:20 kevin_kang 阅读(142) 评论(0) 推荐(0) 编辑

导航