• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
疾风知劲草,智者必怀仁。
路漫漫其修远兮,吾将上下而求索...
博客园    首页    新随笔    联系   管理    订阅  订阅
2011年10月28日
不用判断语句,求两个数中大的那个
摘要: 有个讨论帖比较精彩:http://www.chinaunix.net/jh/23/422544.html实现代码:#include <stdio.h>int max(int x,int y){ int buf[2]={x,y}; unsigned int z; z=x-y; printf("z=x-y=%u\n",z); z>>=31; printf("z>>=31=%u\n",z); //int z1; //z1 = x - y; //printf("z1=x-y=%u\n",z); //z1&g 阅读全文
posted @ 2011-10-28 16:00 疾风中的劲草 阅读(762) 评论(0) 推荐(0)
不借助第三个变量交换两个整数的值
摘要: 假设两个数x和y,则有:方法1,算术运算(加减):x=x+y; //x暂存两数之和y=x-y; //y为两数之和减去y,即原来的xx=x-y; //x为两数之和减去现在的y(原来的x),变成原来的y方法2,逻辑运算(异或):x^=y; //x先存x和y两者的信息y^=x; //保持x不变,利用x异或反转y的原始值使其等于x的原始值x^=y; //保持y不变,利用x异或反转y的原始值使其等于y的原始值关于异或运算要牢记两个原则:任何一位二进制数同 1 异或都会变成另外一个(0 同 1 异或的结果是 1,1 同 1 异或的结果是 0)任何一位二进制数同 0 异或都保持不变(0 同 0 异或的... 阅读全文
posted @ 2011-10-28 14:48 疾风中的劲草 阅读(7464) 评论(0) 推荐(0)
死锁、进程通信以及进程线程的区别
摘要: 一、死锁 操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机制会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况。此时,若不借助外界因素,谁也不能释放资源,谁也不能解除阻塞状态。根据这样的情况,操作系统中的死锁被定义为系统中两个或者多个进程无限期地等待永远不会发生的条件,系统处于停滞状态,这就是死锁。产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。 如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁.. 阅读全文
posted @ 2011-10-28 14:06 疾风中的劲草 阅读(3703) 评论(0) 推荐(0)
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3