C++学习笔记之打印8、10、16进制数字的几种方式

1、流输出

#include <iostream>
#include <bitset>///c++中控制进制的头文件
#include <stdlib.h>///c中的函数库
#include <bits/stdc++.h>///万能头文件,如果选用此头文件,就不用其他所有头文件
using namespace std;
int main()
{
  int a = 100;
  cout<<"十进制    "<<dec<<a<<endl;
  cout<<"十六进制  "<<hex<<a<<endl;
  cout<<"八进制    "<<oct<<a<<endl;
  cout<<"二进制    "<<bitset<8>(a)<<"   "<<bitset<32>(a)<<endl;  // 这里使用了bitset类来输出2进制数据
  return 0;
}

使用过程中注意将char、byte等类型强转为int类型在进行打印,这是因为hex、oct、dec仅对int类型起作用。

cout << hex << int(data[0]); 发现输出的结果前面带了很多f。因为data[0]是有符号数,最高位为1时,转换为int时,其余位都为1,cout << hex << (unsigned int) (unsigned char)data[0];结果正确。

对于小于16的char,输出只显示一位,如果希望都显示两位,可以在输出前设置cout << setfill('0') << setw(2);

原文链接:使用STL中的库函数直接输出十六进制、八进制和二进制

                  C++中cout输出十六进制数

2、printf

#include <stdio.h>

int main()
{
    int a=90;
    printf("十进制    %d\n", a);
	printf("八进制    %o  %#o\n", a, a);
	printf("十六进制  %x  %X  %#x  %#X\n", a, a, a, a);
	char binary_text[100];
	_itoa(a, binary_text, 2);
	printf("二进制    %s\n", binary_text);
}

输出为

十进制    90
八进制    132  0132
十六进制  5a  5A  0x5a  0X5A
二进制    1011010

高位不足添0可以在百分号后添加0x其中x为要显示的位数,如果不足x位就补0,够x位就不用补

原文链接:16进制输出的几种格式

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值