日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试常见题

發布時間:2025/7/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试常见题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  這2個題比較簡單,但是如果沒想到還是做不出來的,請不要小看它。。

1.不通過比較找出2個數中的較大值(較小值)

  方法一:通過位運算來實現

    max=a - ((a - b) & ((a - b) >> 31));

  方法二:就是通過數學公式

    max = ((a+b)+|a-b|)/2;

  求較小者時:a+b-max即可。

2.不通過中間變量實現交換2個變量的值

  方法一:加減法原則

    a=a+b;

    b=a-b;

    a=a-b; 

  方法二:乘除法原則(b!=0,并且此方法容易造成溢出,不推介使用)

    a=a*b;

    b=a/b;

    a=a/b;

   方法三:異或法

    a^=b;

    b^=a;

    a^=b;

    方法四:在代碼中嵌入匯編代碼的方法(避免了臨時變量的引入,但究其本質還是會使用額外的存儲空間

    (1)使用xchg指令,這也是比較直觀、容易想到的方法,因為xchg指令的功能就是交換源操作數和目的操作數的值,這里要使用額外寄存器來暫存變量。

      內嵌匯編代碼如下:

????           _asm

????              {

????????               mov eax,a

????????               xchg b,eax

????????               mov a,eax

????              }

    (2)使用額外的棧。這里使用反向的出棧順序來完成交換。

      內嵌代碼有如下兩種形式:

????       _asm

????           {

????????             push a

????????             push b

????????             pop a

????????             pop b

????          ?}

      另一種形式:

????           _asm push a

???          ? a = b;

????           _asm pop a

    (3)使用mov指令。這種方法使用額外寄存器來暫存一個變量的值。

????       _asm mov eax,a

????       a = b;

????      ?_asm mov b,eax

  參看文檔:Ronli?(Http://Ronli.cnblogs.com/)

    

?

轉載于:https://www.cnblogs.com/czx1/p/5471251.html

總結

以上是生活随笔為你收集整理的面试常见题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。