亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過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個贊

將它們強制轉換為整數類型(以及相應的位掩碼?。矗?/p>


#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 關注
  • 1285 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號