📜  二进制表示 c++ (1)

📅  最后修改于: 2023-12-03 15:06:20.674000             🧑  作者: Mango

二进制表示简介

在计算机科学中,二进制是一种使用 0 和 1 两个数字表示数值和指令的系统。它是计算机内部运算和通讯的基础语言,可用于表达整数、字符、图像、音频等几乎所有信息,也是编写程序或开发硬件的基本单位。

数字系统介绍

在我们日常生活中使用的十进制数系统,是基于 0~9 的数字组成。而在二进制数系统中,仅使用 0 和 1 来表示数字。我们将 0 或 1 称为位(bit),而每 8 个位组成的一组被称为字节(byte),通常表示为 B。

二进制表示

在 C++ 中,使用数字前缀 0b 或 0B 表示一个二进制数。例如,二进制数 101 可以写成 0b101。同时,也可以使用 C++ 中的 std::bitset 类型来表示二进制数。

// 二进制数示例
int binary = 0b101; // 二进制数 101,十进制数 5
std::bitset<8> bits("00001111"); // bits 表示的二进制数为 00001111,十进制数为 15
位运算操作

在 C++ 中,可以使用位运算操作符对二进制数进行运算。

  1. 按位与(&):两个位都是 1,结果才是 1。
  2. 按位或(|):两个位都是 0,结果才是 0。
  3. 按位异或(^):两个位相同为 0,不同为 1。
  4. 按位取反(~):位上是 0 就变成 1,是 1 就变成 0。
  5. 左移(<<):各二进位全部左移若干位,高位丢弃,低位补 0。
  6. 右移(>>):各二进位全部右移若干位,对无符号数,高位补 0,对有符号数,高位补符号位。
// 用位运算交换两个数的值
int a = 5, b = 10;
a ^= b;
b ^= a;
a ^= b;
// 此时 a = 10, b = 5
常见应用

二进制数在计算机领域中有着广泛的应用,包括但不限于以下方面:

  1. 硬件设备中的信号表示:比如,硬盘中的磁盘头和扇区。
  2. 网络数据通信:数据传输中使用的数据格式为二进制。
  3. 密码学:信息安全中的加密和解密算法基于二进制数计算。
  4. 压缩算法:常见的压缩算法如 ZIP、GZIP、BZIP2 等,都是对二进制数进行压缩的。
  5. 图像和音频处理:图像和音频等数字信号也是二进制数处理后的结果。
结论

二进制表示是计算机科学中重要的基础知识,了解二进制,有助于更好的理解计算机的工作原理和底层机制。在程序中使用位运算,可以优化程序性能,提高代码执行效率。