C++ char类型打印为空

2023-11-20

      学过C的应该都知道char类型是专门用来存储字符的,如'a','1'等等,大部分人也就局限于此,但实际上char类型是一种整型,8位的整型,也有类库定义为int8。

      计算机只能存储0,1,也就是数字,从计算机结构来说,也注定不能存储'a','b'等字符,但实际上我们真真切切使用了字符,这就涉及到计算机的编码(如ascii),百度百科中说明了ASCII诞生的原因:

      在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

       char类型与ascii码最亲近了,如我们定义char a='A",实际上在内存中a的值为A的ascii码65,同理,我们可以直接写char a=65,通过cout打印,我们可以得到A字符(注意:a的值实际上还是65,我们能显示出A,是因为cout的行为)。

       那为什么我们有时打印不出char呢?如char v=2。这是因为在ascii表中,前32个字符为控制字符,是不可打印不可显示字符(还包括第128个字符(编码127)),使用cout自然为空,当然我们可以强制转换为int型(int val=v),就可以打印出来v的值为2。

     char是有符号整型,范围为-128到127,当我们打印char v=负数时,会打印出一个问号,表示编译器不知道怎么输出,这是因为ascii表只定义了0~127 ascii码,负数的形式是由编译器实现的,不过我们只要知道char本质上是一种整型,那么就可以在大部分编码中如鱼得水。

     ascii表见网址:http://ascii.911cha.com/

     

       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ char类型打印为空 的相关文章

  • Linux下printk输出

    由于Linux内核的级别控制 导致printk打印的内容不一定都能从控制台正常输出 可以使用dmesg命令来输出所有级别的信息 输入 sudo dmesg n 8 可以把所有日志信息输出来 Linux命令 dmesg 功能说明 显示开机信息
  • Tips系列之飞书日历

    最近收到很多小伙伴的问题 咨询飞书日历如何使用 今天就给大家呈上几个小Tips 让你更全面的了解飞书日历 免费使用 飞书官网 1 订阅日历 你可以订阅同事的日历 查看对方的忙闲状态 省去反复沟通的麻烦 快速找到空闲时间并邀约会议 如何订阅日
  • 卷积神经网络之-VGGNet

    更多内容请关注 机器视觉 CV 公众号 原文地址 VGGNet 是由牛津大学视觉几何小组 Visual Geometry Group VGG 提出的一种深层卷积网络结构 他们以7 32 的错误率赢得了2014年ILSVRC分类任务的亚军 冠
  • Alpha多样性之箱线图绘制

    Alpha多样性 通常用Richness Chao1 Shannon Simpson Dominance和Equitability等指数来评估样本的物种多样性 所以这个节学习主要分两个部分 1 计算 生物多样性指数 软件 R软件中vegan
  • 副业是刚需?分享几个程序员接外包私活的网站

    经常看到某某程序员接了个项目开发 工作之余轻轻松松赚了钱还顺带提升了技术 或者看到某大佬又发表了一篇程序员技术提升稿件 阅读点赞收藏三连发 这个月的零花钱又不愁了 但自己只是一名普普通通的程序员 能找到这样的副业吗 这些项目又在哪里接的呢
  • 网站为什么建议用https协议

    HTTPS 全称 Hyper Text Transfer Protocol over SecureSocket Layer 是以安全为目标的 HTTP 通道 在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 HTTPS 在HT
  • STM32f103增加ESP8266模块,通过Wifi用手机TCP服务端远程与STM32通信

    STM32f103增加ESP8266模块 通过Wifi用手机TCP服务端远程与STM32通信 提示 esp8266开启透传模式 连上路由器Wifi 电脑热点 接入STM32串口引脚 另外手机TCP服务端是手机IP地址 串口号 大于8000滴
  • 仅需三步就可以把代码块完美插入到word中

    还在为在word中呈现代码而烦恼吗 如何在word中插入c 代码 如何在word中插入代码块 如何在word中完美的呈现代码 如何在word中对代码进行排版 来开始表演了 1 打开网站 http word wd1x com 支持c c ja
  • keil提示找不到芯片库

    keil提示找不到芯片库 有几种可能 一种是没安装芯片软件包 下载相应芯片包即可 还有一种可能是工程本身是用keil4创建的 而你用的是keil5打开的 此种情况将后缀名uvproj改成uvprojx即可 图1
  • java获取method_从Method中获取完整类名和方法名

    需求假设 假设在包com zhoutao controller下有方法getKey 方法 在JavaEE中 通过AOP获得该方法的的对象method 现在通过该对象的getName方法 仅仅只能获得getKey的结果 现在我需要的是com
  • 性别年龄识别器

    心情 最近比较郁闷 自己的小论文已经投了快8个月了 从去年的AAAI CVPR 到现在在审的TCSVT AAAI由于页数超限被拒 CVPR因为一个正面和2个负面评价被拒 TCSVT还前途未卜 真的很郁闷 心情不好 论文也不太想看 撸撸代码放
  • Idea快速开发SpringBoot项目的方法

    一 常用插件 1 Free Mybatis plugins 针对Mybatis框架提供的插件 自动完成Mapper接口和Mapper xml之间的跳转 2 RestfulTool 自动显示工程中的所有URL接口 进行测试 并且提供检索功能
  • Elasticsearch(十三) ElasticSearch搜索附近的人

    需求 通过指定点搜索附近的人 要求可以过滤年龄 结果按照距离进行排序 并且展示她 他距离你多远 本文参考 es官网文档 https www elastic co guide cn elasticsearch guide current so
  • 面试题:StringBuilder 和 StringBuffer 区别(通俗易懂易背)

    StringBuffer是同步的 线程安全 StringBuilder不是 什么时候用哪一个 StringBuilder 当您需要一个可以修改的字符串 并且只有一个线程正在访问和修改它时 StringBuffer 当你需要一个可以修改的字符
  • sql: Compare Tables

    使用 UNION INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式 select from BookInfoList 存在不同的 select BookInfoID BookInfoBarCod
  • VMware安装OpenEuler

    VMware安装OpenEuler 需要考虑的因素 安装系统的用途 桌面开发 服务器 Linux学习使用 磁盘分区规划 最小120G 划分 boot swap 根分区等 网络 是否对外提供服务 NAT模式 桥接模式 仅主机模式 1 下载镜像
  • 前端大屏常用的适配方案

    假设我们正在开发一个可视化拖拽的搭建平台 可以拖拽生成工作台或可视化大屏 或者直接就是开发一个大屏 首先必须要考虑的一个问题就是页面如何适应屏幕 因为我们在搭建或开发时一般都会基于一个固定的宽高 但是实际的屏幕可能大小不一 接下来我们就尝试
  • 安卓10开机时间优化分析

    本文从以下六点分析开机时间 1 软件环境 2 开机时间测试方法 3 开机各阶段重要的时间节点 4 bootchart工具使用说明 5 Android开机时间日志信息 6 开机时间优化方案 一 软件环境 平台 android10 0 qcom
  • Stem教育是探究式的学习方式

    在国家政策的扶持下 STEM教育慢慢进入大众的视野 走近一部分大中小学生的课堂 教育部出台的 教育信息化 十三五 规划 中明确指出有效利用信息技术推进 众创空间 建设 探索STEM教育 创客教育等新教育模式 使学生具有较强的信息意识与创新意
  • virtualbox 3.0.8 下载

    http download virtualbox org virtualbox 3 0 8

随机推荐

  • java命令执行jar包main方法指定相关依赖

    1 准备好工程执行所需的所有依赖jar包 也可以使用maven导出依赖的方法导出 2 将工程打包 此处打成jar包 如上图所示 zookeeper learn 1 0 SNAPSHOT jar 本次需要jdk java命令执行的jar包 3
  • #互联网生活中的隐私保护:用隐私换便利还是花钱护隐私?# 隐私保护与个人信息安全:在便利与隐私之间的取舍

    文章目录 1 看法 2 互联网生存指南 通过哪些方法来加强个人信息保护 2 1 加强个人信息安全意识 2 2 使用强密码和多因素认证 2 3 更新操作系统和软件 2 4 谨慎使用公共Wi Fi网络 2 5 定期备份个人数据 2 6 注意社交
  • Qt之自定义布局管理器(QBorderLayout)

    简述 QBorderLayout 顾名思义 边框布局 实现了排列子控件包围中央区域的布局 具体实现要求不再赘述 请参考前几节内容 简述 实现效果源码 使用 实现 QBorderLayout主要采用QLayout和QWidgetItem实现
  • MySQL 代替in/not in 的sql语句

    1 in和exists in是把外表和内表作hash连接 而exists是对外表作loop循环 每次loop循环再对内表进行查询 一直以来认为exists比in效率高的说法是不准确的 如果查询的两个表大小相当 那么用in和exists差别不
  • Textbooks Are All You Need

    本文是LLM系列文章 针对 Textbooks Are All You Need 的翻译 课本是你全部所需要的 摘要 1 引言 2 训练细节和高质量数据的重要性 3 对CodeExercise进行微调后的模型能力峰值 4 LLM评分对非常规
  • 【Python高级之定时器】

    Python高级之定时器 定时器 定时器 如果需要使用定时器去触发一些事件 Python中通过线程实现定时器timer 定时器的意思也是 一段时间后调用一个函数 用法 import threading def fun timer print
  • …\OBJ\LED.axf: Error: L6218E: Undefined symbol EXTI_Init (referred from exti.o). 错误修改

    OBJ LED axf Error L6218E Undefined symbol EXTI Init referred from exti o 错误修改 今天在移植野火的程序到元子的开发平台上时候 发现自己在中断初话中断函数的时候出现了
  • 【C语言】 函数

    函数 在计算机科学中 子程序 一个大型程序中的某部分代码 由一个或多个语句块组 成 它负责完成某项特定任务 而且相较于其他代 码 具备相对的独立性 一般会有输入参数并有返回值 提供对过程的封装和细节的隐藏 这些代码通常被集成为软 件库 C语
  • 深度学习目标跟踪算法

    ECCV 2022 OSTrack Joint Feature Learning and Relation Modeling for Tracking https blog csdn net qq 41442511 article deta
  • osgEarth的Rex引擎原理分析(七十)TileRenderModel中的RenderingPass和RenderBindings

    目标 五十五 中的问题141 TileRenderModel中的RenderingPass和RenderBindings RenderingPass渲染通道主要存放Samplers采样器列表 采样器存放的是用来渲染影像 高程的纹理和矩阵 R
  • 配置pysot- toolkit

    这个大家都没遇见啥困难 但是我就踩了比较多雷 作者的github库 不是我的 https github com StrangerZhang pysot toolkit 安装步骤 参考链接会放在后面 需要的环境 我是在Windows下配置的
  • Latex符号表——文本/数学模式通用符号

    目录 简介 速览图 详细列表 简介 这篇博客用来记录文本 数学模式通用符号 这些符号可用于文本和数学模式 速览图 详细列表 符号 命令
  • 32. 实战:PyQuery实现抓取TX图文新闻

    目录 前言 链接在评论区 链接在评论区 链接在评论区 目的 链接在评论区 链接在评论区 链接在评论区 思路 链接在评论区 链接在评论区 链接在评论区 代码实现 1 拿到页面源代码 2 解析html文件 3 拿到标题和内容 4 下载图片 5
  • 【seaweedfs】3、f4: Facebook’s Warm BLOB Storage System 分布式对象存储的冷热数据

    论文地址 Facebook的照片 视频和其他需要可靠存储和快速访问的二进制大型对象 BLOB 的语料库非常庞大 而且还在继续增长 随着BLOB占用空间的增加 将它们存储在我们传统的存储系统 Haystack 中变得越来越低效 为了提高我们的
  • Keil注释中的中文字体乱码解决方法

    1 刚刚安装好keil发现选中keil的注释部分会乱码 而且修改注释也会出现莫名的乱文 2 在edit configuration中 Editor Encoding改为Chinese GB2312即可 需要将乱码删掉 重新输入就不会出现乱码
  • java 多线程学习笔记之 线程实现(线程阻塞)

    java 实现线程方法主要分为两种方法 一种是继承 java lang Thread 另一种实现java lang Runnable接口 对于直接继承Thread 的类来说 代码大致框架是 public class MyThread ext
  • springboot整合shiro的坑记录

    首先我参考文章 https blog csdn net Yearingforthefuture article details 117384035 进行学习 由于此文章没有讲springboot的版本 我于是用了idea2022 3 1的默
  • JVM调优常用命令

    windows系统本人在jdk的bin目录操作 1 jps 查看系统中的进程 2 jmap jmap histo 进程号 gt D log txt 查看内存信息 实例个数及占用内存大小 也可以不要后面的路径 在控制台展示 jamp heap
  • linux 字符串数组定义,Shell脚本(一) -- 开始、变量、字符串、数组

    一 什么是Shell Shell编程就是对一堆Linux命令的逻辑化处理 应用 例 举个简单的例子 我们做pythonweb开发的 在以前 如果要在本地将程序打包 然后部署到远程服务器 抛开现在的ci 原始的方法 我们以前的做法通常会经历如
  • C++ char类型打印为空

    学过C的应该都知道char类型是专门用来存储字符的 如 a 1 等等 大部分人也就局限于此 但实际上char类型是一种整型 8位的整型 也有类库定义为int8 计算机只能存储0 1 也就是数字 从计算机结构来说 也注定不能存储 a b 等字