`
445822357
  • 浏览: 743095 次
文章分类
社区版块
存档分类
最新评论

不用大于、小于、if语句比较两个数的大小

 
阅读更多

题目:定义一个宏,比较两个数a和b的大小,不能使用大于、小于或if语句。


考虑以下两种方法,注意不同机器上的字长问题。

#include <stdio.h>

#define Max(a,b) (((long)((a)-(b)))>>(sizeof(long)*8-1)?b:a)

#define max(a,b) ((((a)-(b))>>(sizeof((a)-(b))*8-1))?b:a)

int main()
{
	printf("%ld\t%ld\n", Max(123,-123), max(-567,-525));
}
分享到:
评论

相关推荐

    Arduino学习

    在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: setup() 当Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电...

    Python if语句

    Python Day 4 2020-4-9 Python if语句 条件测试 1.检查是否相等 大多数条件测试都将一个变量的当前值同特定值进行...条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于等 &gt;&gt;&gt; age = 18 &gt;&gt;&gt; age == 18

    c#入门之分支语句使用方法(三元运算符、if语句、switch语句)

    三元运算符:?很多语言中都有这个运算符,原理都是一样...IF语句IF语句没有返回值(不像 ? ),而且可以执行复杂的语句代码块,使用 { } 号包围起来就OK了。和其它的语言差不多:if……elseif……else……,还是举个例

    腾讯c/c++笔试题

    腾讯 c/c++笔试题 记了一部分 1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define Max(a,b) ( a/b)?a:b 2、如何输出源文件的标题和目前执行行的行数 int line = __LINE__; char *...

    C语言程序设计标准教程

    应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。 变量的地址和变量值的关系如下: &a---&gt;a567 a为变量名,567是变量的值,&a是变量a的地址。在...

    腾讯试题.pdf

    1、请定义一个宏,比较两个数 a、b 的大小,不能使用大于、小于、if 语句

    逻辑表达式-解析-python.docx

    比较运算符:用于比较两个值的大小关系,包括等于(==)、不等于(!=)、大于(&gt;)、小于(&lt;)、大于等于(&gt;=)和小于等于()。 2.逻辑运算符:用于连接两个或多个逻辑表达式,包括与(and)、或(or)和非(not)...

    javascript文档

    大于相等运算符(&gt;=) 比较两个表达式,看一个是否大于等于另一个。 hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的...

    JScript 语言参考

    大于相等运算符(&gt;=) 比较两个表达式,看一个是否大于等于另一个。 hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的...

    微软JavaScript手册

    大于相等运算符(&gt;=) 比较两个表达式,看一个是否大于等于另一个。 hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的...

    计算机程序设计(C语言)教案.doc

    两个值进行比较,判断比较 "强调关系运 " "算符和 "的结果是否符合给定的条件,如果符合比较的结果为真, "算符中等于 " "关系表 "否则结果为假。 "用==表示, " "达式 "用关系运算符将两个表达式(可以是算术表达式、...

    Screenshot_2019-11-15-13-34-57-96_860bc48c3aad114ac1ee206f23d5a6f5.png

    =不等于,&gt;=大于等于,小于等于 2.用0表示假,用非0值(通常用1)​表示真 3.1!=2⇔1 4.运算符的优先级: *,/,% +,- &lt;,&gt;​,,&gt;= ==,!= = 第二课​ 逻辑运算符 1.&&逻辑与 ||​逻辑或 !逻辑非 2.不能...

    leetcode小白刷题-Leetcode:力码

    语句比较两个数字并输出越来越小的数字。 打印斐波那契数列中的所有元素 编写一个程序来检查数字是否是回文数。 生成 1 和给定数字之间的所有质数。 使用嵌套 for 循环打印星星金字塔。 使用 for 循环和递减运算符在...

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    javascript入门笔记

    2、如果 a 大于 b的话 ,则交换两个数字的位置 使用 短路&&,扩展赋值运算符,位运算 4、条件运算符(三目运算) 单目(一元)运算符 :++,--,! 双目(二元)运算符 :+,-,*,/,%,&gt;,&lt;, ... ... 三目(三元)运算符 ...

    测量程序编制 - python 64流程控制:选择结构(单分支).pptx

    这里的语句块就是缩进四个空格的两个 print() 语句。 注意: 1、每个条件后面要使用冒???:表示接下来是满足条件后要执行的语句块 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。 3、在Python中...

    【03-流程控制与数组】

    •for 循环圆括号中只有两个分号是必须的,初始化语句、循环条件、迭代语句部分都可以省略,如果省略了循环  条件,则这个循环条件默认是true,将会产生一个死循环。 •使用for循环时,还可以把初始化条件定义...

    51单片机C语言编程基础及实例

    两个 16 位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对 AT89C52 单片机,头文件 AT89x52.h 给出了 SFR 特殊功能寄存器所有端口的...

    你必须知道的495个C语言问题

    3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...

Global site tag (gtag.js) - Google Analytics