国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++面試八股文:了解位運算嗎?

這篇具有很好參考價值的文章主要介紹了C++面試八股文:了解位運算嗎?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第12面:

面試官:了解位運算嗎?

二師兄:了解一些。(我很熟悉)

面試官:請列舉以下有哪些位運算?

二師兄:按位與(&)、按位或(|)、按位異或(^),按位取反(~)、左移(<<)和右移(>>)。

面試官:好的。那你知道位運算有什么優(yōu)勢嗎?

二師兄:優(yōu)勢主要有兩點:1.速度快。2.節(jié)省寄存器/內(nèi)存空間。

面試官:在C++中,如何處理int型負(fù)數(shù)最高位(是1)的左移或者右移?

二師兄:不同編譯器處理的方法不同。此操作在C++中屬于未定義的行為。所以不要使用帶符號的整數(shù)參加位運算。

面試官:如何判斷一個數(shù)是不是2的整數(shù)次方?

二師兄:使用這個數(shù)與這個數(shù)-1按位與,如果結(jié)果是0,則這個數(shù)是2的整數(shù)次方,否則不是。

bool is_power_of_two(unsigned int n)
{
    return n & (n-1) == 0;
}

面試官:如何使用位運算交換兩個數(shù),而不能申請額外的空間?

二師兄:可以使用異或操作,原理是一個數(shù)異或兩次同一個數(shù),結(jié)果等于原值。

void swap(unsigned int& a, unsigned int& b)
{
    a = a ^ b;	// a = a ^ b;
    b = a ^ b;	// b = a ^ b ^ b = a;
    a = a ^ b;	// a = a ^ b ^ a = b;
}

面試官:如何獲取一個數(shù)字中的某一位是0 還是1

二師兄:把這個數(shù)字右移x位,然后與&1

bool get_bit(unsigned int n, unsigned int x)
{
    return 1 & (n >> x);
}

面試官:如何將一個數(shù)的某一位置成1/置成0,或取反?

二師兄:沉思良久。。。想不起來了。。。

今日二師兄的表現(xiàn)還不錯,除了最后一問,其他都答上來了。讓我們看看最后一問吧:

如何將一個數(shù)的某一位置成0/置成1,或取反?

先看第一個,如何將一個數(shù)的某一位置成1?這個數(shù)的這一位要不是1要不是0,最終要變成1,那么可以考慮在這一位上構(gòu)造個1,然后和這個數(shù)或,這一位就置成了1。

unsigned set_bit_1(unsigned int n, unsigned int x)
{
    return (1u << x) | n;
}

如何將一個數(shù)的某一位置成0呢?我們首先考慮到與(&)操作。同樣我們需要構(gòu)造出來一個全是1的數(shù)字,然后再這一位上變成0,并與傳入的參數(shù)進行與操作:

unsigned set_bit_0(unsigned n, unsigned x)
{
    return (~(1u << x)) & n;
}

最后一個問題,如果講一個數(shù)的某一位取反?想到了取反,我們就想到了異或。任何數(shù)與1異或等于取反,任何數(shù)與0異或等于原數(shù):

unsigned flip_bit(unsigned n, unsigned x)
{
    return (1u << x) ^ n;
}

好了,今日份面試到這里就結(jié)束了。二師兄自我感覺表現(xiàn)還行,晚上給自己加了個雞腿。

關(guān)注我,帶你走進二師兄的跌宕起伏的C++面試生涯。

關(guān)注我,帶你21天“精通”C++?。ü奉^)文章來源地址http://www.zghlxwxcb.cn/news/detail-480364.html

到了這里,關(guān)于C++面試八股文:了解位運算嗎?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C++面試八股文:static_cast了解一下?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第20面: 面試官:C++中支持哪些類型轉(zhuǎn)換? 二師兄:C++支持C風(fēng)格的類型轉(zhuǎn)換,并在C++11引入新的規(guī)范了類型轉(zhuǎn)換。 二師兄:C++11引入四種新的類型轉(zhuǎn)換,分別是 static_cast 、 dynamic_cast 、 const_cast 、和 reinterpret_cast 。 二師

    2024年02月09日
    瀏覽(25)
  • C++面試八股文:技術(shù)勘誤

    C++面試八股文:技術(shù)勘誤

    不知不覺,《C++面試八股文》已經(jīng)更新30篇了,這是我第一次寫技術(shù)博客,由于個人能力有限,出現(xiàn)了不少紕漏,在此向各位讀者小伙伴們致歉。 為了不誤導(dǎo)更多的小伙伴,以后會不定期的出勘誤文章,請各位小伙伴留意。 在《C++面試八股文:C++中,設(shè)計一個類要注意哪些東

    2024年02月11日
    瀏覽(30)
  • C++面試八股文:如何避免死鎖?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第31面: 面試官:什么是鎖?有什么作用? 二師兄:在C++中,鎖(Lock)是一種同步工具,用于保護共享資源,防止多個線程同時訪問,從而避免數(shù)據(jù)競爭和不一致。 面試官:有哪些鎖? 二師兄:從種類上分,可以分為普通鎖、

    2024年02月12日
    瀏覽(28)
  • C++面試八股文:什么是構(gòu)造函數(shù)?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第29面: 面試官:什么是構(gòu)造函數(shù)? 二師兄:構(gòu)造函數(shù)是一種特殊的成員函數(shù),用于創(chuàng)建和初始化類的對象。構(gòu)造函數(shù)的名稱與類的名稱相同,并且沒有返回類型。構(gòu)造函數(shù)在對象被創(chuàng)建時自動調(diào)用。 面試官:什么是默認(rèn)構(gòu)造

    2024年02月11日
    瀏覽(26)
  • C++面試八股文:什么是RAII?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第13面: 面試官:什么是 RAII ? 二師兄: RAII 是 Resource Acquisition Is Initialization 的縮寫。翻譯成中文是資源獲取即初始化。 面試官: RAII 有什么特點和優(yōu)勢? 二師兄:主要的特點是,在對象初始化時獲取資源,在對象析構(gòu)時釋放

    2024年02月08日
    瀏覽(28)
  • C++面試八股文:聊一聊指針?

    C++面試八股文:聊一聊指針?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第17面: 面試官:聊一聊指針? 二師兄:好的。 面試官:你覺得指針本質(zhì)上是什么? 二師兄:這要從內(nèi)存地址開始說起了。如果有一塊容量是1G的內(nèi)存,假設(shè)它的地址是從 0x00000000 到 0x3fffffff ,每一個字節(jié)都對應(yīng)一個地址。當(dāng)

    2024年02月09日
    瀏覽(24)
  • C++面試八股文:用過STL嗎?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第21面: 面試官:用過STL嗎? 二師兄:(每天都用好嗎。。)用過一些。 面試官:你知道STL是什么? 二師兄:STL是指標(biāo)準(zhǔn)模板庫( Standard Template Library ),是C++區(qū)別于C語言的特征之一。 面試官:那你知道STL的六大部件是什么

    2024年02月09日
    瀏覽(15)
  • C++面試八股文:什么是智能指針?

    C++面試八股文:什么是智能指針?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第19面: 面試官:什么是智能指針? 二師兄:智能指針是C++11引入的類模板,用于管理資源,行為類似于指針,但不需要手動申請、釋放資源,所以稱為智能指針。 面試官:C++11引入了哪些智能指針? 二師兄:三種,分別是 s

    2024年02月09日
    瀏覽(25)
  • C++面試八股文:std::deque用過嗎?

    C++面試八股文:std::deque用過嗎?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第26面: 面試官: deque 用過嗎? 二師兄:說實話,很少用,基本沒用過。 面試官:為什么? 二師兄:因為使用它的場景很少,大部分需要性能、且需要自動擴容的時候使用 vector ,需要隨機插入和刪除的時候可以使用 list 。

    2024年02月11日
    瀏覽(25)
  • C++面試八股文:如何實現(xiàn)一個strncpy函數(shù)?

    C++面試八股文:如何實現(xiàn)一個strncpy函數(shù)?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第31面: 面試官: strcpy 函數(shù)使用過吧? 二師兄:用過。 面試官:這個函數(shù)有什么作用? 二師兄:主要用做字符串復(fù)制,將于字符從一個位置復(fù)制到另一個位置。 面試官: strncpy 函數(shù)也使用過吧,和 strcpy 有何不同? 二師兄:

    2024年02月11日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包