为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过cout将字符输出为整数?

如何通过cout将字符输出为整数?

C++
鸿蒙传说 2019-11-30 10:29:23
#include <iostream>using namespace std;int main(){      char          c1 = 0xab;    signed char   c2 = 0xcd;    unsigned char c3 = 0xef;    cout << hex;    cout << c1 << endl;    cout << c2 << endl;    cout << c3 << endl;}我期望输出如下:abcdef但是,我什么也没得到。我猜这是因为cout始终将'char','signed char'和'unsigned char'视为字符,而不是8位整数。但是,“ char”,“ signed char”和“ unsigned char”都是整数类型。所以我的问题是:如何通过cout将字符输出为整数?PS:static_cast(...)难看,需要更多工作来修剪多余的位。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

将它们强制转换为整数类型(以及相应的位掩码!),即:


#include <iostream>


using namespace std;


int main()

{  

    char          c1 = 0xab;

    signed char   c2 = 0xcd;

    unsigned char c3 = 0xef;


    cout << hex;

    cout << (static_cast<int>(c1) & 0xFF) << endl;

    cout << (static_cast<int>(c2) & 0xFF) << endl;

    cout << (static_cast<unsigned int>(c3) & 0xFF) << endl;

}


查看完整回答
反对 回复 2019-11-30
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

关于什么:


char c1 = 0xab;

std::cout << int{ c1 } << std::endl;

简洁,安全,并且产生与其他方法相同的机器代码。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 1258 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信