05-0 位运算符
位运算符作用于位,并逐位执行操作。
这里我们需要知道一个概念:1 字节是 8 位。计算机存储的是二进制(也就是只有0
和1
)。
而位运算符是作用于位上的,就是作用于0
或者1
上的。
之后会介绍位运算符的具体信息。不过我们先写了一个函数,用于将1 字节的数字(限制正整数)转化为位。这样方便演示(其实 c++是有函数进行进制转化的......但是懒得用了)。
void T2(int a);
void T2(int a)
{
int arr[8];
int s = 8;
if (!(0 <= a <= 255))
{
return;
}
for (int i = 0;i < s; i++)
{
arr[s - 1 - i] = a % 2;
a = a / 2;
if (arr[s - 1 - i] == -1)
{
arr[s - 1 - i] = 1;
}
}
for (int i = 0;i < s; i++)
{
cout << arr[i];
}
cout << endl;
return;
}
我们来看一下实际的代码:
#include <iostream>
using namespace std;
void T2(int a);
int main()
{
int a;
cin >> a;
T2(a);
return 0;
}
void T2(int a)
{
int arr[8];
int s = 8;
if (!(0 <= a <= 255))
{
return;
}
for (int i = 0;i < s; i++)
{
arr[s - 1 - i] = a % 2;
a = a / 2;
if (arr[s - 1 - i] == -1)
{
arr[s - 1 - i] = 1;
}
}
for (int i = 0;i < s; i++)
{
cout << arr[i];
}
cout << endl;
return;
}
运行结果:(环境:Windows11(arm/Apple M VM)/Visual Studio 2022/Debug/arm64)
100
01100100
:-)