在头文件iomanip里的函数setw()是做什么用的?

setw指的是用cerr和cout输出数值时每个数值占用的最小宽度,程序必须包含头文件<iomanip.h>,setw设置的宽度仅对紧接着它的数值有效。

<iomanip>是C++里的I/O流控制头文件。当希望格式化输出时使用。属于std名空间,使用其中的函数时使用该头文件,函数名前要增加std:: 或者在include之后使用using namespace std;
常用函数有:setw,setprecision,dec, hex, oct,setfill。使用这些函数时要加
#include <iomanip>

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

对于char型,它所表示的范围为-128~+127,假设有如下语句:

char data[3] = {0xab, 0xcd, 0xef};

初始化之后想打印出来,cout << data[0] << data[1] << data[2]; 发现都是乱码,没有按十六进制输出。

在ASCII中,一共定义了128个字符,其中33个无法显示,为0~31和127,32到126为可显示字符,当使用cout输出一个char型字符时,如果是可显示范围内,则输出相应可显示字符,其余的都输出乱码。

如果我们要使字符按十六进制输出,可以使用hex,但是发现cout << hex << data[0];没有输出十六进制,因为hex只对整数起作用,将data[0]转换为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);

C++ cout打印生成两位16进制数相关推荐

  1. java16进制取前几位_16位16进制数怎么取前8位和后8位

    展开全部 我用C语言来回答这个问题.16位就是一个2字节整636f707962616964757a686964616f31333433633530数. unsigned short hex=0x123 ...

  2. java 中 10进制 转为 4位 或者8位 16进制数

    int i =789; //输出为16进制数 Integer.toHexString(), String s=Integer.toHexString(Integer.valueOf(value)); ...

  3. 生成32位,16进制的UUID

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 汇编-输入8位二进制串并转换为16进制数显示到屏幕(利用8421转换)

    今天编写了一个 输入二进制串并转换为16进制数显示到屏幕 的汇编程序 在编写过程中遇到一些问题,并解决后,想把它与大家分享. 题目是这样的: 分析题目: 可得要求 输入 11111111 得到 00F ...

  5. 2进制数转换成16进制数(C++)

    程序如下: #include<bits/stdc++.h> using namespace std; //整体思路:二进制中的4个数字对应1个16进制数字 char a[100010]; ...

  6. 汇编语言16进制数转换为ASCII码显示

    题目要求 使用 Masm for Windows 软件编程,将一个十六进制数组转换成其ASCII码组并显示出来. 代码设计 采用查表法,实现一组十六进制数转换为ASCII码显示.先设置ASCII码表分 ...

  7. linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...

    嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...

  8. 嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)

    嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include<st ...

  9. 8位16进制频率计设计实验--VHDL

    一.实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习简单时序电路的设计和硬件测试. (3)学习使用VHDL 语言方法进行逻辑设计输入 (4)学习设计8位16进制频率计,学习较复杂的 ...

最新文章

  1. TCP 网络应用程序开发流程
  2. mysql5.6 mac10.11_Mac Pro 解压安装MySQL二进制分发版 mysql-5.6.30-osx10.11-x86_64.tar.gz(不是dmg的)...
  3. 网站服务器停止响应,如何解决apache停止响应的问题
  4. 只懂JavaScript也可以开发VR/AR内容了!
  5. 利用Angular2的Observables实现交互控制
  6. NYOJ 257 郁闷的C小加(一)
  7. QT的QMediaPlayer类的使用
  8. 在IIS中部署Asp.net Mvc
  9. hihoCoder 1227 2015 北京网络赛 A题
  10. c语言程序设计电加热炉,基于80C52单片机的电加热数字恒温控制系统设计
  11. 连接linux工具Mtr,Linux常用网络工具:路由扫描之mtr
  12. 读Zepto源码之代码结构
  13. Leetcode 53. Maximum SubarrayJAVA语言
  14. linux终端中书名号,Linux双引号、单引号和反向单引号
  15. linux mysql 查看字符集_Linux中查看和设置MySQL数据库字符集 一
  16. Nebula3渲染层: Graphics
  17. WIN10使用 NetSpeedMonitor
  18. sql server2014使用BULK INSERT导入UTF-8数据中文乱码问题
  19. windows版本redis搭建集群步骤
  20. 教你看懂MOSFET数据手册

热门文章

  1. 使命召唤ol codol如何自己选择快速低延时的游戏服务器节点
  2. 图片阴影怎么设置_PPT就一直处在阴影里面,抱歉,阴影是真的无敌!不服?
  3. ASP在VB中的封装
  4. php 登录保存在哪里看,Mac_MAC如何查看使用自动登录后保存的网站软件密码,  我们在登录网站或软件时 - phpStudy...
  5. Centos7.5运行iotop报错
  6. 【python初级】windows10卸载python3发生严重错误
  7. echo 定义显示颜色_如何在Echo Show上设置和自定义免打扰模式
  8. linux 时间同步命令
  9. word公式自动编号与引用
  10. 【安全牛学习笔记】存储型XSS和BEEF浏览器攻击框架