位元組也叫byte,是計算機資料的基本儲存單位,
bit儲存內容是0和1,bit是計算機中最小的儲存單位
乙個byte是由8個bit組成,它是最小的可定址單元 ,1個位元組等於8位二進位制。1b(byte)=8b(bit)
八個bit可以儲存基本的元素 2^8數 例如:abcd1234和各種符號
在ascii碼中,乙個英文本母(不分大小寫)佔乙個位元組的空間,乙個中文漢字佔兩個位元組的空間,乙個位元組是8位,乙個漢字編碼兩個位元組是十六位。英文標點佔乙個位元組,中文標點佔兩個位元組。乙個二進位制數字序列,在計算機中作為乙個數字單元,一般為8位二進位制數,換算為十進位制。最小值:0 最大值:255 。如乙個ascii碼就是乙個位元組
二進位制占乙個bit
八進位制占三個bit
十六進製制占四個bit
十進位制一般按實際來算,7以下佔3個,8,9佔4個。
例如:是16進製制,對應二進位制為「0110 0010 1000 0000」
根據數值占用bit數,按順序從輸入位元組流中解析出對應數值,解析順序按輸入陣列astelement索引公升序;
void decode(unsigned int uiinputlen, unsigned char ainputbyte, unsigned int uielementnum, element_stru astelement);
unsigned int uiinputlen:位元組陣列(流)長度
unsigned char ainputbyte:位元組陣列(流)
unsigned int uielementnum:解析數值個數
element_stru astelement:數值的結構陣列指標,含義如下
struct
element_stru;
輸入描述:
位元組陣列長度uiiutputlen為3;
位元組陣列ainputbyte[3]為,對應二進位制為「0110 0010, 1000 0000, 0000 0000」;
解析數值個數uielementnum為2;
數值[0]的值佔4個bit,即astelement[0].uielementlength = 4;
數值[1]的值佔5個bit,即astelement[1].uielementlength = 5;
輸出描述:
數值[0]的值為6,二進位制為「0110」,即astelement[0].uielementvalue = 6;
數值[1]的值為5,二進位制為「0010 1」,即astelement[1].uielementvalue = 5;
示例1
輸入 3
0x62 0x80 0x00
2 4
5 輸出 6 5
思路
我們輸入的「0x62 0x80 0x00 」是以二進位制01的形式連續排列的,要求我們從二進位制位元組流取出指定數目的bit,然後轉化為十進位制輸出。例如 0x62 0x80 實際上連在一起是 0110 0010 1000 0000,輸入4,表示取4個bit得到0110,轉化為十進位制是6,接著輸入5,表示接著取5個bit得到00101,轉化為十進位制是5。另外,這道題的難點主要在於進製準換以及相關的輸入操作。
例項:
#include#include#includeusing namespace std;
int main()
int num;
cin >> num; //解析數值的個數elementnum
vectornums(num); //定義乙個包含num個int元素的stl向量
for (int i = 0; i < num; ++i)
vectorbits;
//len的值分別是98,128,0(0x62 0x80 0x00)
for (int len : lens)
} int start = 0;
long long result = 0;
for (int num : nums)
} }//判斷結果有幾位
while (lenc--)
} char ch;
for (int i = strrst_length - 1; i >= 0; i--) //把結果放入字串中 (注意倒序)
if (strrst.empty())//如果結果為0,則輸出字串為「0」
strrst = "0";
return 0;
}int main()
if (b[0] == '-')
string c = "\0";//儲存結果
multiply(a, b, c);
if(neg_count==1)
cout << "-";
cout << c << endl;
system("pause");
return 0;
}
from: 華為2018春招筆試題
給定乙個字串,輸出字串中最長的數字串,並把這個數字串的長度輸出。請乙個在字串中找出連續最長的數字串,並把這個串的長度返回 如果存在長度相同的連續數字串,返回最後乙個連續數字串 注意 數字串只需要是數字組成的就可以,並不要求順序,比如數字串 1234 的長度就小於數字串 1359055 如果沒有數字,...
2020華為春招機試題目回憶
剛剛做完題目,趁著還記得題目,記錄一下。第一題,給兩個ip和掩碼,計算這兩個ip在不在乙個子網。第二題,給0 1矩陣,計算由1組成的最大的正方形的面積。第三題,打怪獸,每個怪獸有個數值標記,從起點開始,必須按數值大小順序打,矩陣上0不能走,1代表沒有怪獸,2的就是怪獸,打過了就變成1。問能不能打到最...
網易春招筆試題
網易2017年3月26日中午的實習生招聘裡面有道程式設計題,大概是說有乙個圍棋格仔,每乙個塊為白色或黑色,小易會找出列方向上顏色相同並且連著的區域,並最長,將其塗為紅色。第一行輸入棋盤的大小,如3,後面依次是棋盤的顏色,w是white白色,b是black黑色 bwbbbb bww 那麼很明顯第一列有...