字符串末尾符‘\0‘和数字0的ASCII编码是不一样的

embedded/2024/12/24 11:17:52/

1. '\0' 的 ASCII 编码

  • '\0' 是表示 ASCII 值为 0 的字符。
  • 它是一个特殊的不可见控制字符,表示 NULL 字符,在 C 语言中通常用作字符串的结束标志。
  • 在 ASCII 表中,它的编码是 0

2. 数字 0 的 ASCII 编码

  • 数字字符 '0'(带引号的字符)是一个可打印字符,表示数字 0,其 ASCII 编码是 48(十进制)。
  • 在内存中,'0' 的值是二进制 0x30

3. 对比

表示形式类型ASCII 编码内存值 (十六进制)用途
'\0'字符00x00用作字符串终止符
'0'字符480x30表示数字字符 0
0整数N/A0x00表示数值零

4. 常见误解

由于 '\0' 和数字 0 的二进制值相同,人们可能会混淆它们与字符 '0'。需要注意以下区别:

  • '\0':ASCII 编码是 0,是一个不可见字符。
  • '0':ASCII 编码是 48,是一个可见字符。
  • 0:整数值,没有 ASCII 编码。

5. 示例代码

以下代码展示它们的区别:

#include <stdio.h>int main() {char c1 = '\0';  // NULL 字符char c2 = '0';   // 数字字符int i = 0;       // 整数值printf("ASCII 编码: '\\0' = %d, '0' = %d\n", c1, c2); // 输出 0 和 48printf("整数值: '\\0' = %d, '0' = %d, 0 = %d\n", c1, c2, i); // 输出 0, 48, 0return 0;
}

输出结果:

ASCII 编码: '\0' = 0, '0' = 48
整数值: '\0' = 0, '0' = 48, 0 = 0

总结

  • '\0' 和数字字符 '0' 的 ASCII 编码不同
    • '\0' 的 ASCII 编码是 0
    • '0' 的 ASCII 编码是 48
  • 数字 0 是一个整数,与 ASCII 表无关,但它的二进制值与 '\0' 相同。

http://www.ppmy.cn/embedded/148316.html

相关文章

32. 线程、进程与协程

一、什么是多任务 如果一个操作系统上同时运行了多个程序&#xff0c;那么称这个操作系统就是 多任务的操作系统&#xff0c;例如&#xff1a;Windows、Mac、Android、IOS、Harmony 等。如果是一个程序&#xff0c;它可以同时执行多个事情&#xff0c;那么就称为 多任务的程序。…

浏览器工作原理与实践-12|栈空间和堆空间:数据是如何存储的

12|栈空间和堆控件&#xff1a;数据是如何存储的 JavaScript内存机制 function foo(){var a 1var b aa 2console.log(a) // 2console.log(b) // 2 } foo()function foo(){var a {name:"极客时间"}var b aa.name "极客邦"console.log(a) // {name:&…

leetcode17:电话号码的字母组合

给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "23" 输出&#…

JDK11下载安装和配置超详细过程

一、下载JDK11资源包 JDK11安装包文件夹资源资源https://download.csdn.net/download/Z0412_J0103/90160803 二、配置环境 2.1 找到文件位置 2.2 打开文件&#xff0c;点击“下一步” ” 2.3 记住文件配置路径&#xff0c;并不要更改&#xff0c;点击下一步 2.4 等待安装完…

【Prometheus】【实战篇(七)】在 Grafana 中配置数据源并使用 Prometheus Node Exporter

目录 1、配置 Prometheus 数据源2、导入 Node Exporter 仪表盘3、查看Dashbords监控数据4、通过JSON文件离线方式导入仪表盘4.1、访问grafana的官网下载配置文件4.2、将对应的文件内容填充到如下 5、总结 1、配置 Prometheus 数据源 登录到 Grafana 打开浏览器&#xff0c;访问…

express+mysql实现注册功能

这里写自定义目录标题 app.jsregister.htmlsuccess.html初始化项目mysql app.js const express require("express"); const bodyParser require("body-parser"); const mysql require("mysql"); const path require("path"); con…

Redis 多实例配置说明

Redis 多实例就是在在单个服务器上运行多个redis服务&#xff08;通过不同的配置文件来启动不同的redis进程&#xff09;。 所以需要保证以下配置项在当前服务器上唯一。 监听端口&#xff1a; port PID文件&#xff1a; pidfile 日志文件 &#xff1a;logfile 持久化数据的…

【Linux】ubuntu通过远程命令行启动桌面应用

背景介绍 我有一台服务器&#xff0c; 但没有外接鼠标和键盘。 安装了驱动和桌面程序&#xff0c; 连接到了显示器大屏。 配置了固定的ip地址和ssh服务。 目的 想在服务器上开启浏览器显示在大屏上。 如何通过ssh命令来实现这呢 具体代码 export DISPLAY:0.0 …