【銳捷筆試題】將整形變數a的最高n位清零,其它位不變,巨集定義:#define clear_bits(a,n)
銳捷昨天的一道網際網路C++筆試題,我的寫法如下:
#define clear_bits(a,n) (a)&~(((1<<n)-1)<<(32-n))
注:1、n應該加上括號,上面括號比較多,再寫上比較混亂,所以沒給n寫上括號,大家寫的時候記得加上;另外,巨集定義所有變數最好都加上括號。
2、(1<<n)-1就是2的n次方減1(當時我直接寫的2^n-1,把異或^當成了次方運算,Faint!),即最低n位都置為1,例如(1<<4)-1即2的4次方-1,二進位制表示為0000 1111
3、((1<<n)-1)<<(32-n)即把最低的n個1左移到最高的n個1,即最高n為都置為了1,eg,n=4時(以8位二進位制為例),((1<<4)-1)<<(8-4),結果為1111 0000
4、然後對上面結果取反~,即最高的n位置為0,其他位全為1;最後a與這個數,即把a的最高n為清零了。
相關推薦
【銳捷筆試題】將整形變數a的最高n位清零,其它位不變,巨集定義:#define clear_bits(a,n)
銳捷昨天的一道網際網路C++筆試題,我的寫法如下: #define clear_bits(a,n) (a)&~(((1<<n)-1)<<(32-n)) 注:1、n應該加上括號,上面括號比較多,再寫上比較混亂,所以沒給n寫上括號,大家寫的
C語言結構體的位元組對齊例項【C語言筆試題】
一、筆試題目:在一個64位的作業系統中定義如下結構體: <span style="font-family:Microsoft YaHei;font-size:12px;">struct st_task { uint16_t id; uint32
【網易筆試題】戰鬥點
解題思路 重複的點沒有必要去增加時間複雜度, 先把point點簡化成沒有重複的新陣列norepeatvalues以及記錄每個新陣列的成員point對應的重複次數repeatcounts陣列; 兩個點可以確定一條直線,假設有一個起始點Point[i]和P
【網易筆試題】遊戲卡牌
解題思路 首先測試樣例有錯誤,應該是 輸入 5 1 2 3 4 5 10 輸出 30 暴力解,找到所有和為m的求積。 import java.util.Scanne
面試題:一個字串包含英文和特殊字元,特殊字元不變,英文順序反過來,比如string str="<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2b4d0a4f5c6b">[email
public class Reverse { public static void main(String[] args) { String str = "[email protected]!tk"; char[] chars = str.toCh
面試題:一個字串包含英文和特殊字元,特殊字元不變,英文順序反過來,比如string str="<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0f692e6b784f">[email prot
public class Reverse { public static void main(String[] args) { String str = "[email protected]!tk"; char[] char
【筆試題】codewars:最小可能的總和
描述 給定一個正整數的陣列X,它的元素將通過對它們執行以下操作來轉換所需的次數: if X[i] > X[j] then X[i] = X[i] - X[j] 如果無法進行更多轉換,則返回其總和(“最小可能總和”)。 例如,輸入X = [6,9,21]的元素的連續變換詳
【筆試題】:0.“沒事兒走兩步”問題
問題: 小明在單位為1的尺子上向目標點走,每次只能向前或向後走,第一次走1步,第二次走2步,第n次走n步,請問小明走到正前方x步最短需要走幾次? 輸入:x 1 2 3 4 輸出:n 1 3 2 4 答案: 1.程式碼: https://github.c
【筆試題】輸入年月日,輸出是這一年的第幾天
#include<iostream> using namespace std; bool isLeapYear(int year) { if(year%4==0&&year%100!=0 || year%400==0) {
【筆試題】列印字串所有子集
7、有一個集合由A-Z這26個字母組成,列印這個集合的所有子集,每個子集一行,寫C程式碼實現,不能使用遞迴(騰訊面試題) 思路:J作為一個可以移動的指標,i代表資料的範圍(所有可能性),J每迴圈結束,從緩衝區刷到終端 void SubSet(int n) { const
【ForOffer】【深信服--測試開發崗筆試題】求最少車費&求最低位&找馬甲&找字串子串
深信服的整體筆試題難度一般,有多刷題的經驗,能立馬找出了題意理解,在此,自己只是做個總結髮出,有更好的解法的童靴可以一起交流,其實這四道題都是常見題型的一種變形。程式碼照著搬都是沒有問題的哦! 第一題:求最低位 關鍵點說明:主要是對二進位制轉換,並且擷取到了從右
【筆試題】網易2018秋招內推筆試
今天下午3點到五點做了網易秋招內推筆試題,晚上的時候牛妹就把程式設計題的答案發出來了,聽說有幾萬人參加了,嚇死。。。。。感覺自己太弱。 下面是我做的三道筆試題,一共有八道。。。。。 題目一 問題描述 小易有一個長度為n的整數序列,a_1,…,a_
【筆試題】拼多多2018校招內推程式設計
2、大資料相乘 問題描述 有兩個用字串表示的非常大的大整數,算出他們的乘積,也是用字串表示。不能用系統自帶的大整數型別。 輸入描述: 空格分隔的兩個字串,代表輸入的兩個大整數 輸出描述: 輸入的乘積,用字串表 問題分析 只要把加法換成乘法就好,半夜
【筆試題】:1.翻轉int問題
問題: 輸入int,輸出倒序 例子: 輸入: 234 -123 -100 輸出: 432 -321 -1 程式碼: #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Sat Dec 8 1
【面試題】將ip地址轉換成整數
題目:將ip地址轉換成整數 開始用了最粗暴的方法,將四段分別轉換成二進位制連線起來,然後掃描一遍,累加求和。效率太低。 假設ip地址:110.111.112.113,即為A.B.C.D,轉換成整數只需要將D左移0位(不需要移動),C左移8位,B左移16位,A左移24位即可
生成指定個數的隨機碼,同時包含大小寫字母和數字【H3C筆試題】
【華三通訊2011年校招程式設計題】題目:編寫一個函式,用於生成隨機密碼,引數為隨機密碼長度,密碼必須同時包含大小寫字母和數字。 【思路】先隨機生成大寫字母、小寫字母和數字的個數,然後密碼的每一位都
【前端筆試題】陣列去重
陣列去重 題目來自於自己真實筆試,現在總結到博文,算是給自己的再一次複習吧,另外也可以與大家分享。 最初的實現 我記得我第一次的答案是這樣寫的: for (var i = 0; i < arr1.length; i++) { f
【Java筆試題】輸出字串的所有組合
1、題目 輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。 2、解題思想 首先建立combine函式,對於字串進行處理,如果字串為空,則直接輸出;如果字串不為空,則建立StingBuild
【Java筆試題】輸出字串中第一個不重複的字元
1、題目 在一個字串中找到第一個只出現一次的字元。例如,輸入“abaccdeff”,則輸出b。 2、Java程式碼 public class RetStr { public static
【Java筆試題】定義棧的資料結構
1、題目 定義棧的資料結構,請在該型別中實現一個能夠得到棧最小元素的min函式,在該棧中,呼叫min、push和pop的時間複雜度都是O(1)。 2、Java程式碼 public class