Ascii码 、16进制与 char

2023-05-16

          对于一个非计算机专业出身的人,以前只知道计算机中所有的数据都是以二进制形式进行存储,计算,通信的。但是人类文明中,主要的信息展现以文本的形式展现的。如果使用内存中的0和1来表示文本一直都是一个问题,因为每一个人都可以制定自己的编码。这种现象直到ASCII的出现。ASCII 统一了数字,字母,符号的二进制编码。
          美国标准ASCII有128个,0-32和127是控制字符或通信字符,如控制符:LF(换行), CR(回车)、FF(换页)、DEL(删除) 、BS(退格)、BEL(振铃)等。通讯专用字符:SOH(头文)、EOT(文尾)、ACK(确认)等。他们没有特定的图形显示,单会依不同的程序,对文本显示有不同的影响。
        33-126是字符,48-57为0-9数字
         65-90为26个大写字母,97-122号为26个小写字母。其余的为一些符号,运算符号。
同时还要注意,标准ASCII的最高位Bit7是一个奇偶校验位。 扩展的ASCII有258个,最高位用来确定附加的128个特殊字符,外来字母和图形符号。
    举个例子:看看ASCII  --- ‘A’是如何用二进制表示的 0100 0001  十六进制为:0x41,十进制是65。作为一个程序员大家在VS中经常放在一个字符上的时候,会出现两个值,一个值是ASCII的十进制,一个是ASCII对应的字符。
    现在大家想一个问题,如果在数据传输的过程中,A-->B计算机需要发送"abc"这样的字符串,本质上时发送的abc三个字符对应的ASCII码。如果我们通过串口发送,必须要把’abc‘转化为二进制或者16进制。 特别注意:因为一个每个ASCII会对应一个字符(有显示符号的,无显示符号的)。 例如我们想要发送字符串“2D”,许多程序员由于对ASCII理解不到位,因此直接把"2D"当成ASCII的16进制发送了,而实质上发送过去的是:0x3244。因此产生了数据的传输过去后,由于错误的理解,当然会解析错误。
现在明确一点,在电脑屏幕上显示的都是以ASCII对应的字符显示的,而数据的存储,传输,计算在计算机内部都是二进制的形式表示的。
         


来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/chengkeke/p/5417388.html

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

Ascii码 、16进制与 char 的相关文章

  • 如何获取ASCII后面的二进制代码(C#)

    我试图找出如何将控制台的输入转换为二进制 如何在 C 中进行这样的转换 先感谢您 string s Console ReadLine byte bytes Encoding ASCII GetBytes s 请注意 控制台使用的编码实际上不
  • 用Java读取纯文本文件

    Java 中读取和写入文件数据的方式似乎有不同 我想从文件中读取 ASCII 数据 有哪些可能的方式以及它们的区别 我最喜欢的读取小文件的方法是使用 BufferedReader 和 StringBuilder 它非常简单明了 虽然不是特别
  • 从 mysql 列中删除所有或特定的不可打印字符

    我想从 mysql 的列中删除所有或特定的不可打印字符 我认为这可以通过使用来实现正则表达式 替换 功能但我不知道如何 不可打印字符的 Ascii 值从 o 到 31 我想了一个解决方案 如下所示 如果我编写一个函数 从输入字符串中一一读取
  • 将 char 数组转换为单个 int?

    有人知道如何将 char 数组转换为单个 int 吗 char hello 5 hello 12345 int myNumber convert char to int hello Printf My number is d myNumbe
  • 结构中的字符数组 - 不兼容的赋值? [复制]

    这个问题在这里已经有答案了 我试图找出结构真正的 是什么 并遇到了问题 所以我有两个问题 1 sara 中保存了什么 它是指向结构体第一个元素的指针吗 2 更有趣的问题 为什么它不能编译 GCC 说 test c 10 错误 赋值中的类型不
  • 打印一个字符*

    我提前为这个愚蠢的问题道歉 这是我的结构定义 struct vcard char cnet char email char fname char lname char tel 我正在尝试使用函数 vcard show vcard c 打印此
  • C问题:为什么char实际上占用了4个字节的内存?

    我写了一个小程序来检查 char 在内存中占用了多少字节 它显示 char 实际上在内存中占用了 4 个字节 我知道这主要是因为字对齐 并且没有看到 char 只有 1 个字节的优势 为什么不使用 4 个字节作为 char int main
  • 指向常量字符的指针

    下面的代码指向a中的第一个字符字符数组可在只读存储器中使用 是对的吗 const char ptr String one 现在 当ptr开始指向另一个内存位置 ptr String two 第一个会发生什么字符数组 执行结束时该内存位置是否
  • 将 int(32 位)转换为 char(8 位)

    我有这些定义 int data uartBaseAddress UART DATA REGISTER 4 data coming from UART RX port char message 20 array of 20 chars 现在当
  • char * 变量地址与 char[] 变量地址

    我从以下两个声明和初始化中打印出地址和字符串 char strPtr char This is a string made on the fly char charArray Chars in a char array variable 打
  • 使用 int 值初始化向量

    我想用这个 ASCII 代码初始化这个 char 向量 vector
  • 为什么这段带有“1234”的代码可以在 C++ 中编译?

    为什么会这样编译 char ch 1234 no error 但不能超过 4 个chars char ch 12345 error Too many chars in constant 是的 我知道 用于一个char and 用于字符串 我
  • 尝试在整数后添加字符然后打印结果时出现奇怪的结果

    我正在尝试创建一个简单的欧姆定律计算器 所以我们的想法是你可以填写两个变量 然后它会计算第三个变量 当我创建这个程序时 我发现了一个小问题 我不明白它是如何发生的 不幸的是我无法找到答案 我尝试打印一个显示完整计算的字符串 用户填写的两个变
  • 网站上出现奇怪的符号(L SEP)?

    我在我的网站上注意到 http www cscc org sg http www cscc org sg 出现了这个奇怪的符号 上面写着 L SEP 在 HTML 代码中 它显示相同的内容 有人可以告诉我如何删除它们吗 那个角色是U 202
  • 文本组件中的 ASCII 不可打印字符

    我的情况是 我必须扫描文本字段中的二维码 我必须解析该文本字段附带的不可打印字符 顺便说一句 它总是相同的字符 而这些字符永远不会出现在相同的位置 我尝试获取此代码但没有成功 textfield getText 失败 textfield g
  • 实现 `memcpy()`:需要 `unsigned char *`,还是只需要 `char *`?

    我正在实施一个版本memcpy 能够与它一起使用volatile 使用安全吗char 或者我需要unsigned char volatile void memcpy v volatile void dest const volatile v
  • 如何比较 ASCII 值

    我想将字母的 ASCII 值存储到变量中 我该怎么做 例如 r ASCII variable 82 main character character read from a file variable r ascii in this cas
  • 在C#中,如何检测一个字符是否是非ASCII字符?

    我想在 C 中检查 char 是否包含非 ASCII 字符 检查特殊字符的最佳方法是什么 例如志 or ASCII 范围为 0 127 因此只需检查该范围 char c a or whatever char you have bool is
  • C 的“char”使用什么字符集? [复制]

    这个问题在这里已经有答案了 简单的问题 我最近开始用 C 编程 有一个简单的问题 C 编程语言在其 char 类型中使用什么字符集 例如 ASCII 还是取决于软件 操作系统 char 本质上是 1 个字节 主要在所有操作系统上 所以默认情
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC

随机推荐