题解
2024-05-12 19:38:28
发布于:北京
29阅读
0回复
0点赞
#include <iostream>
#include <bitset>
// 函数:获取一个整数的补码形式
std::bitset<32> getTwosComplement(int num) {
// 如果是正数,直接返回二进制形式
if (num >= 0) {
return std::bitset<32>(num);
} else {
// 计算补码
unsigned int absNum = static_cast<unsigned int>(-num);
std::bitset<32> absBitset(absNum);
// 按位取反
absBitset = ~absBitset;
// 加1
bool carry = true;
for (int i = 0; i < 32; ++i) {
bool tmp = absBitset[i] ^ carry;
carry = absBitset[i] & carry;
absBitset[i] = tmp;
}
return absBitset;
}
}
int main() {
int num;
std::cin>>num;
std::bitset<32> twosComp = getTwosComplement(num);
std::cout<< twosComp << std::endl;
return 0;
}
全部评论 1
建议加以下头文件:
#include<bits/stdc++.h> // 语言支持 #include<atomic> // C++11 原子操作 //#include<concepts> C++20 概念约束 acgo好像不支持 //#include<coroutine> C++20 协程 acgo好像不支持 #include<exception> // 异常处理 #include<initializer_list>// C++11 初始化列表 #include<limits> // 数值类型极值 #include<memory> // 智能指针、内存管理 #include<new> // new/delete 相关 #include<optional> // C++17 std::optional //#include<source_location> C++20 源码位置信息 acgo好像不支持 #include<stdexcept> // 标准异常类 #include<typeinfo> // RTTI type_info #include<type_traits> // C++11 类型特征 #include<utility> // pair、move、forward、swap #include<variant> // C++17 std::variant #include<any> // C++17 std::any // 容器 #include<array> // C++11 std::array #include<deque> #include<forward_list> // C++11 单向链表 #include<list> #include<map> #include<queue> #include<set> #include<stack> #include<unordered_map> // C++11 哈希map #include<unordered_set> // C++11 哈希set #include<vector> //#include<flat_map> C++23 acgo好像不支持 //#include<flat_set> C++23 acgo好像不支持 #include<bitset> // std::bitset 固定长度位集合 // 算法 & 迭代器 #include<algorithm> // 算法库 sort/find等 #include<execution> // C++17 并行执行策略 #include<iterator> // 迭代器 #include<numeric> // 数值算法 accumulate等 //#include<ranges> C++20 范围库 acgo好像不支持 // 输入输出 #include<fstream> // 文件流 #include<iomanip> // 格式化输出 setw/setprecision #include<ios> // IO基础定义 #include<iosfwd> // IO前置声明 #include<iostream> // cin/cout #include<istream> // 输入流 #include<ostream> // 输出流 #include<sstream> // 字符串流 #include<streambuf> // 流缓冲区 //#include<syncstream> C++20 同步输出流 acgo好像不支持 // 字符串 & 文本处理 #include<charconv> // C++17 高效数值字符串转换 #include<string> #include<string_view> // C++17 string_view #include<regex> // C++11 正则表达式 //#include<format> C++20 std::format格式化 acgo好像不支持4天前 来自 安徽
0










有帮助,赞一个