奇偶校驗(轉換二進位制、bitset)
輸入一個字串,然後對每個字元進行奇校驗,最後輸出校驗後的二進位制數(如’3’,輸出:10110011)。
https://blog.csdn.net/meng_lemon/article/details/89060740
七位二進位制可表示所有字元的十進位制ASCII碼(0~127)。
int main() {
string s;
vector<int> res(8); //7位二進位制數表示字元的ASCII碼,最高位為奇偶校驗位
while (cin >> s) {
for (int i = 0; i < s.size();++i) {
int num = s[i]; //字元的十進位制ASCII碼
cout << num << endl;
int cnt = 0; //二進位制中1的個數
//轉換為二進位制
int j = 0;
while (num > 0) {
if (num % 2 == 1) {
res[j++] = 1;
++cnt;
}
else {
res[j++] = 0;
}
num = num >> 1;
}
res[7] = (cnt % 2 == 1) ? 0 : 1;
for (int i = 7; i >= 0; --i) { //反序輸出
cout << res[i];
}
cout << endl;
}
}
}
用bitset:
int main() {
string s;
vector<int> res(8, 0); //7位二進位制數表示字元的ASCII碼,最高位為奇偶校驗位
while (cin >> s) {
for (int i = 0; i < s.size();++i) {
bitset<7> b(s[i]);
string tmp = b.to_string();
int cnt = 0;
for (char& c : tmp) {
if (c == '1') cnt++;
}
if (cnt % 2 == 1) {
tmp.insert(tmp.begin(), '0');
}
else {
tmp.insert(tmp.begin(), '1');
}
cout << tmp << endl;
}
}
}
相關文章
- JavaScript十進位制轉換為二進位制JavaScript
- 什麼是二進位制?二進位制如何轉換?
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 進位制與二進位制及相關轉換
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- Qt進位制轉換(十進位制轉十六進位制)QT
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- Python 十進位制轉換為二進位制 高位補零Python
- 進位制轉換
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 牛客網 二進位制數(進位制轉換、北郵機試)
- JavaScript 進位制轉換JavaScript
- 【python】進位制轉換Python
- 進位制的轉換
- 二進位制轉十進位制快速方法
- Go語言實現十進位制轉換成二、八、十六進位制Go
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 二進位制、十進位制與十六進位制相互轉化
- 十進位制轉二進位制推導(草稿)
- 進位制轉換圖解圖解
- [20190716]十進位制轉換其他進位制指令碼.txt指令碼
- 十進位制轉換任意進位制--鏈棧實現
- 計算機求解10進位制轉換任意進位制計算機
- JavaScript中的多種進位制與進位制轉換JavaScript
- 淺談奇偶校驗
- c++的進位制轉換C++
- 技術問 - 進位制轉換
- 進位制轉換的工具類
- JavaScript 進位制轉換 All In OneJavaScript
- Python中各進位制轉換Python
- binaascii:A Python 在二進位制和 ASCII 之間轉換ASCIIPython
- 資訊學奧賽初賽天天練-71-NOIP2016普及組-基礎題2-進位制轉換、二進位制轉八進位制、八進位制轉二進位制、二叉樹陣列儲存、定址空間二叉樹陣列