c++ - Microsoft Visual C++ 如何存储带符号的字符以及如何测试带符号的字符中的各个位?

标签 c++ visual-studio-2008 visual-c++ char

好的,假设我有一个值为 -103 的有符号字符:

char s_char = -103;

计算机如何按位存储这个字符?第一位是 0 因为 char 是负数吗?如果是这样,计算机会将字符存储为 01100101,因为 1100101(基数 2)在基数 10 中是 103?

第二个问题:如何访问或测试签名字符中的单个位?会

s_char & (0x80 >> pos)

给我从左边数的pos位置的位的值?

最佳答案

char 只是一个整数。大多数情况下为 8 位整数。所以 -103 就是:

10011001

要访问 char 中的单个位,您可以像访问任何其他整数一样执行此操作:

char s_char = -103;

s_char & (1 << n)

将为您获取倒数第 n 位。

关于c++ - Microsoft Visual C++ 如何存储带符号的字符以及如何测试带符号的字符中的各个位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671623/

相关文章:

c++ - C++0x 中 std::make_tuple 的问题

asp.net - Visual Studio 2008 SP1 - 如何停止在 IE 以外的其他浏览器中进行调试?

c++ - 从头文件中分解 C++ 源代码

c++ - 删除字符(以及字符)之后的所有内容

c++ - 使用 VC++ 的 __assume 是否可能带来可衡量的性能提升?

c++ - OpenCV:输出图像为蓝色

c++ - linux 在 C++ 代码中运行 ffmpeg

c++ - 如何在 Visual Studio 2008 C++ 中捕获被零除错误?

c++ - Windows高性能计数器的分辨率是多少?

java - 从 Java 代码运行 MSVC 编译器会出现错误