前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】基础:& 0xff 的用法及常用十六进制数处理

【C++】基础:& 0xff 的用法及常用十六进制数处理

作者头像
DevFrank
发布2024-07-24 14:50:53
810
发布2024-07-24 14:50:53
举报
文章被收录于专栏:C++开发学习交流

在一些情况下,我们会在别人的代码中看到& 0xff,刚开始我也不知道为什么会有这个用法,查了一些资料后,学习如下。

首先,&表示按位与,只有两个位同时为1才能得到1;0x代表16进制数,0xff表示二进制1111 1111,8个位占一个字节。

在这里插入图片描述
在这里插入图片描述

1. & 0xff的作用——保留低8位

例如,有个数字 0x1234,如果只想将低8位写入到内存中,就需要用0x1234 & 0xff。 0x1234 表示成二进制是 0001 0010 0011 0100,0xff 表示成二进制是 1111 1111,高位补0就是 0000 0000 1111 1111。 因为1&0 =0, 1&1 =1,所以0x1234 & 0xff运算后,最低8位不会发生变化。

2. 常用十六进制数的处理

在C++中,处理十六进制数可以使用一些内置的功能和方法。

字符串转换为十六进制数:

使用 std::stoi 函数将字符串转换为十六进制数。

代码语言:javascript
复制
std::string hexString = "1A";
int decimal = std::stoi(hexString, nullptr, 16);  // stoi的第三个参数16表示用16进制表示,8进制写8就行
十进制数转换为十六进制字符串:

使用 std::stringstream 类和 std::hex 输出格式来将十进制数转换为十六进制字符串。

代码语言:javascript
复制
int decimal = 26;
std::stringstream ss;
ss << std::hex << decimal;	// 输出格式用hex表示,8进制用oct
std::string hexString = ss.str();	// 获取转换后的16进制字符串
十六进制数的位操作:

使用位运算符(例如按位与、按位或、按位异或)对十六进制数进行位操作。

代码语言:javascript
复制
int hexA = 0x0F; // 十六进制数 0x0F
int hexB = 0x32; // 十六进制数 0x32

int resultAnd = hexA & hexB; // 按位与
int resultOr = hexA | hexB;  // 按位或
int resultXor = hexA ^ hexB; // 按位异或

3. 常用十进制数的处理

字符串转换为十进制数:

使用 std::stoi 函数将字符串转换为十进制数。

代码语言:javascript
复制
std::string decimalString = "42";
int decimal = std::stoi(decimalString);
十进制数转换为字符串:

使用 std::to_string 函数将十进制数转换为字符串。

代码语言:javascript
复制
int decimal = 42;
std::string decimalString = std::to_string(decimal);
十进制数的数学运算:

常用的数学运算,这里就不多说了。

另外,二进制转十进制,可以使用 std::bitset 类和 std::to_string 函数将十进制数转换为二进制字符串。

代码语言:javascript
复制
int decimal = 42;
std::bitset<32> binary(decimal);
std::string binaryString = binary.to_string();

以上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. & 0xff的作用——保留低8位
  • 2. 常用十六进制数的处理
    • 字符串转换为十六进制数:
      • 十进制数转换为十六进制字符串:
        • 十六进制数的位操作:
        • 3. 常用十进制数的处理
          • 字符串转换为十进制数:
            • 十进制数转换为字符串:
              • 十进制数的数学运算:
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档