日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > [置頂] 定義一個(gè)宏,比較兩個(gè)數(shù)a、b的大小,不能使用大于、小于、if語(yǔ)句 以及 不用 第三個(gè)數(shù),交換 a,b的值

[置頂] 定義一個(gè)宏,比較兩個(gè)數(shù)a、b的大小,不能使用大于、小于、if語(yǔ)句 以及 不用 第三個(gè)數(shù),交換 a,b的值

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-03-18 10:02:21 閱讀次數(shù):3158次

無(wú)意中 1篇博文,介紹這個(gè)問(wèn)題,引發(fā)了我的興趣。

博文中 介紹了 3種方法:

1.

#define max(a,b) ((((a)-(b))&(1<<31))?(b):(a))

2.

#define max(a,b) ((((long)((a)-(b)))&0x80000000)?(b):(a))

3

#define max(a,b) (((abs((a)-(b)))==((a)-(b)))?(a):(b))

第1種方法 和第2種方法 的原理都是1樣的,就是 根據(jù) (a) - (b) 的結(jié)果 的 符號(hào)位 來(lái)判斷 的,但是 疏忽了 類型的問(wèn)題,在不同的機(jī)型上 int 可以是 16 位 或 32 位,

long 可以是 32 位 或 64位 ,用 1<<31 或 0x80000000   和  (a) - (b) 來(lái)進(jìn)行 & 運(yùn)算 都是 不適合的。


第3種方法正好解決了 上面的問(wèn)題。但是 疏忽了 浮點(diǎn)型問(wèn)題。


所以 最好的方法 是 將 abs 換成 fabs

#define max(a,b) (((fabs((a)-(b)))==((a)-(b)))?(a):(b))


下面 來(lái)講另外一個(gè)話題: 假定 有 int a = 7 , int b = 8 ,不用 第3個(gè)數(shù) 來(lái) 交換 a,b

答案:

a = a + b; b = a - b; a = a - b;




生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩一区免费 | 99精品视频在线观看视频 | 日韩国产欧美在线观看 | 99国产精品粉嫩初高生在线播放 | 国产婷婷色一区二区三区在线 | 能看毛片的网站 | 国产成人久久精品麻豆二区 | 成人爽a毛片免费啪啪动漫 久久久国产一区二区三区 国产69久久精品成人看 | 国产视频网 | 精品久久久久久久久久岛国gif | www.欧美日韩 | 91中文视频 | 伊人热 | 亚洲免费在线 | 精品一区二区三区蜜桃 | 一区二区三区视频在线播放 | 黄色小视频在线看 | 看毛片的网址 | 久久国产精品久久久久久久久久 | 欧美三区视频 | 亚洲自拍偷拍视频 | 99精品久久久 | 国产精品网站在线观看 | 最新日韩在线观看视频 | 亚洲视频免费 | 波多野结衣精品在线 | 婷婷五月情 | 亚洲成年| 91精品一区二区三区久久久久久 | 亚洲精品乱码久久久久久 | 国产综合网址 | 三级av毛片| 欧美日韩中文在线观看 | 岛国av大片| 国产精品免费一区二区三区都可以 | 在线91观看| 亚洲国产精品久久久 | 久久91 | 成人在线免费观看 | 亚洲一区成人 | 国产精品久久久一区二区三区 |