7-15 位模式(dump_bits)---PTA實驗C++

一、題目描述

為方便調試位運算相關程序,先做個展現位模式的小工具。

建議參照以下接口實現:

 
// 利用函數重載特性:
string dump_bits(char x);
string dump_bits(short x);
string dump_bits(int x);
string dump_bits(long long x);

// 或用函數模板實現:
template<typename T>
string dump_bits(T x);

先導題:字節解析(需要讀入十六進制數據)、字節序。

輸入規格
  • 由若干組測試數據構成,格式自由,處理至EOF為止。
  • 每組開頭是i8 i16 i32 i64四種類型之一,之后分別有1/2/4/8個字節的數據。
  • 數據以小端序導出(參考字節序題目)。
  • 數據間有長度不定的空白符,每組數據可能跨越多行。目的是演示輸入流的性質,無需特殊處理。
輸出規格
  • 每組數據以大端序輸出其各字節的位模式,每字節8位,字節間以下劃線分隔。
樣例輸入
i8 88i16          ab             cdi32 01      2345   67  i64
01 23      45 67 89   ab CD Fe
樣例輸出
10001000
11001101_10101011
01100111_01000101_00100011_00000001
11111110_11001101_10101011_10001001_01100111_01000101_00100011_00000001
樣例解釋
  • 第1組:共1個字節88,對應0x88
  • 第2組:共2個字節ab cd,對應0xCDAB
  • 第3組:共4個字節01 23 45 67,對應0x67452301
  • 第1組:共8個字節01 23 45 67 89 ab CD Fe,對應0xFECDAB8967452301ULL

二、完整C++代碼實現

#include<iostream>
#include<cstdint>
using namespace std;
string parse_byte(char hi){string ss="";if(hi>='0'&&hi<='9'){hi=hi-'0';}else if(hi>='a'&&hi<='f'){hi=hi-'a'+10;}else if(hi>='A'&&hi<='f'){hi=hi-'A'+10;}for(int i=3;i>=0;i--){ss+=(hi>>i)&1?'1':'0';}return ss; // TODO
}
string dump_bits(string x){
string s8;
s8+= parse_byte(x[0])+parse_byte(x[1]);return s8;
}int main(){string type;while(cin>>type){if(type=="i8"){string x;cin>>x;string result=dump_bits(x);cout<<result<<endl;}else if(type=="i16"){string x;string result;string s[2];for(int i=0;i<2;i++){cin>>x;s[i]=dump_bits(x);}result+=s[1]+"_"+s[0];cout<<result<<endl;}else if(type=="i32"){string x;string result;string s[4];for(int i=0;i<4;i++){cin>>x;s[i]=dump_bits(x);}for(int i=3;i>=0;i--){if(i==0){result+=s[i];}else{result+=s[i]+"_";}}cout<<result<<endl;}else if(type=="i64"){string x;string result;string s[8];for(int i=0;i<8;i++){cin>>x;s[i]=dump_bits(x);}for(int i=7;i>=0;i--){if(i==0){result+=s[i];}else{result+=s[i]+"_";}}cout<<result<<endl;}}}

三、測評詳情

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21247.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM類加載過程

在Java虛擬機規范中&#xff0c;把描述類的數據從class文件加載到內存&#xff0c;并對數據進行校驗、轉換解析和初始化&#xff0c;最終形成可以被虛擬機直接使用的java.lang.Class對象&#xff0c;這個過程被稱作類加載過程。一個類在整個虛擬機周期內會經歷如下圖的階段&…

C++編程法則365天一天一條(323)main函數執行之前和之后的動作

在C和C程序中&#xff0c;main 函數之前和之后執行的函數是由編譯器、鏈接器和運行時環境共同決定的。以下是一些通常會在這些階段執行的關鍵函數&#xff1a; 在 main 函數之前執行的函數 啟動代碼&#xff08;Start-up Code&#xff09;: 這是由編譯器提供的一段代碼&#…

DIYP對接駱駝后臺IPTV管理,退出菜單中顯示用戶名已經網絡信息,MAC,剩余天數,套餐名稱等

演示&#xff1a;https://url03.ctfile.com/f/1779803-1042599473-4dc000?p8976 (訪問密碼: 8976) 后臺加上EPG&#xff0c;增加一些播放源的動態端口替換。 前臺app上&#xff0c;退出菜單中顯示用戶名已經網絡信息&#xff0c;MAC&#xff0c;剩余天數&#xff0c;套餐名稱…

Python知識點17---包

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的包&#xff0c;你可以把它看成是一個大的模塊&#xff0c;它…

JAVA基礎|多線程

什么是線程&#xff1f; 線程&#xff08;Thread&#xff09;是一個程序內部的一條執行流程。 多線程是什么&#xff1f; 多線程是指從軟硬件上實現的多條執行流程的技術&#xff08;多條線程由CPU負責調度執行&#xff09; 一. 如何在程序中創建出多條線程&#xff1f; Ja…

新接手業務的線上Bug特別多怎么辦?

文章目錄 接手&#xff1a;保證質量順利過渡緊急質量審計臨時增加測試頻次灰度發布加強監控與預警建立快速反饋機制 打補丁&#xff1a;針對性解決質量問題Bug 分析與分類測試策略優化環境一致性 搞基建&#xff1a;全流程質量控制需求分析與評審設計階段的評審與驗證代碼質量控…

Windows10系統中安裝與配置PyTorch(無GPU版本)

文章目錄 1. 什么是PyTorch2. PyTorch的安裝與配置&#xff08;無GPU&#xff09;2.1 創建環境2.2 安裝pytorch庫&#xff08;無GPU&#xff09;2.3 驗證安裝結果 1. 什么是PyTorch PyTorch 是一種用于構建深度學習模型且功能完備的開源框架&#xff0c;通常用于處理圖像識別和…

JVM學習-自定義類加載器

為什么要自定義類加載器 隔離加載類 在某些框架內進行中間件與應用的模塊隔離&#xff0c;把類加載到不同的環境&#xff0c;如Tomcat這類Web應用服務器&#xff0c;內部自定義了好幾種類加載器&#xff0c;用于隔離同一個Web應用服務器上的不同應用程序 修改類加載的方式 …

OpenCV 的幾種查找圖像中輪廓邊緣的方法

原始圖片&#xff1a; 1、Sobel() Sobel 算子結合了高斯平滑和微分&#xff0c;用于計算圖像的梯度&#xff0c;從而突出顯示邊緣。 import cv2# 讀取圖像 image cv2.imread(image.png, cv2.IMREAD_GRAYSCALE)# 使用 Sobel 算子查找水平和垂直邊緣 sobel_x cv2.Sobel(image…

建筑企業有閑置資質怎么辦?

如果建筑企業擁有閑置資質&#xff0c;可以考慮以下幾種方式來充分利用這些資質&#xff1a; 1. 租賃或轉讓資質&#xff1a; 將閑置的建筑資質租賃給其他企業或個人使用&#xff0c;或者通過轉讓的方式將資質出售給有需要的企業或個人。 2. 提供咨詢服務&#xff1a; 利用建…

git分布式版本控制系統(四)

目前世界上最先進的分布式版本控制系統 官方網址&#xff1a;https://git-scm.com 學習目標&#xff1a; 1 了解 git 前世今生 2 掌握 git 基礎概念、基礎操作 3 各種 git 問題處理 4 互聯網常用 gitflow(工作流程規范) 5 git 代碼提交規范 6 git 分支管理及命名規范 常見問…

OneForall工具的下載安裝和使用(Windows和Linux)

目錄 OneForall的介紹 OneForall的下載 OneForall的安裝 安裝要求 安裝步驟&#xff08;git 版&#xff09; 安裝&#xff08;kali&#xff09; OneForall的使用命令 在Windows 在Linux&#xff08;kali&#xff09; OneForall的結果說明 免責聲明 本文所提供的文字和…

車輛前向碰撞預警系統性能要求和測試規程

前言 本文整理《GB/T 33577-2017 智能運輸系統-車輛前向碰撞預警系統性能要求和測試規程》國標文件關鍵信息,FCW系統性能和測試右給深層次的認識。 術語和定義 車輛前向碰撞預警系統 forward vehicle collision warning system自車 subject vehicle(SV)目標車輛 target ve…

【Linux】查找和壓縮

一、文件查找 1、命令查找 which 2、文件查找、依賴數據庫 locate 3、文件查找 find 語法&#xff1a;find [path] [options] [expression] [action] ①按文件名 -name按名 -iname可不區分大小寫 ②按文件大小 5M&#xff1a;5M以上文件 5M&#xff1a;5M文件 -…

高中數學:解三角形相關公式總結及用法總結

一、正弦定理 二、余弦定理 三、三角形面積公式 由正弦定理&#xff0c;可以推出三角形的面積公式&#xff1a; S*ab*sinC S*ac*sinB S*bc*sinA 四、使用方法總結 五、練習 例題1 解析 對條件等式進行變形&#xff0c;結合余弦定理&#xff0c;求出∠A的度數&#xff0c;從而…

【面經分享-CPP篇】[建議收藏!!] C++基礎20問-01

&#x1f36d; 大家好這里是清隆學長 &#xff0c;一枚熱愛算法的程序員 ? 本系列打算持續跟新c面試基礎 &#x1f44f; 感謝大家的訂閱? 和 喜歡&#x1f497; 文章目錄 1.題目&#xff1a;解釋C中的RAII機制。2.題目&#xff1a;解釋C中的智能指針及其類型。3.題目&#xf…

從內存到sql的upsert

業務的upsert ? 在寫業務時&#xff0c;大家一開始都會以順序流程的方式開始著手寫代碼&#xff0c;CR時再看代碼&#xff0c;會有不一樣的感覺。 1. 需求描述 ? 現有一張數據庫表&#xff0c;表字段結構如下&#xff1a; 字段名稱類型描述uuidstring數據的唯一鍵datastrin…

代碼隨想錄算法訓練營第四十六天|KM52. 攜帶研究材料、518. 零錢兌換 II、377. 組合總和 Ⅳ

代碼隨想錄算法訓練營第四十六天 KM52. 攜帶研究材料 題目鏈接&#xff1a;KM52. 攜帶研究材料 確定dp數組以及下標的含義&#xff1a;j的含義是當前背包的最大容量&#xff0c;dp[j]背包內物品的總價值確定遞推公式&#xff1a;背包最大容量固定為j&#xff0c;每個循環嘗試…

Nginx01-HTTP簡介與Nginx簡介(安裝、命令介紹、目錄介紹、配置文件介紹)

目錄 HTTP簡介HTTP原理查看訪問網站的詳細流程curl -vwget --debug 查看網站訪問量HTTP協議版本HTTP協議交互HTTP 請求請求報文起始行請求頭 HTTP響應響應報文起始行響應頭 Nginx常見的Web服務常見網站服務 安裝NginxNginx目錄結構Nginx啟動管理Nginx常用命令 Nginx配置文件主配…

國內外主流大模型語言技術大比拼

國內外主流大模型語言技術對比 2024 自2017年起&#xff0c;美國深度布局人工智能&#xff0c;全面融入經濟、文化與社會。至2023年&#xff0c;中國憑借自研技術平臺嶄露頭角&#xff0c;ChatGPT及其技術成國家戰略焦點&#xff0c;引領未來科技浪潮。中美競逐&#xff0c;人工…