嵌入式-C语言-ASCII码(字符)转换二进制和十六进制

一:ASCII码是什么?

问:ASCII码是什么?
答:ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)是一种用于表示字符的标准编码系统。它使用7位或8位二进制数字来表示128或256个不同的字符,包括字母、数字、标点符号、控制字符以及一些特殊字符。

最早的ASCII码标准使用7位二进制数,共有128个字符,其中包括基本拉丁字母、数字0-9、标点符号等。后来扩展的ASCII码(称为扩展ASCII码或ASCII扩展字符集)使用了8位二进制数,共有256个字符,包括更多的字符和符号,如特殊字符、国际字符、图形符号等。

每个字符在ASCII码中都有对应的唯一的数值表示,这个数值可以用二进制、十进制或十六进制表示。例如,字母"A"的ASCII码为65(或0x41),而数字"0"的ASCII码为48(或0x30)。通过ASCII码,计算机可以对字符进行存储、传输和处理。

二:ASCII标准参考表


我们看到ASCII表是由控制字符和打印字符组成,其中她们的符号位置由高四位和低四位组成(高高高高 低低低低)。

比如:‘a’=97,怎么详细解读这句话?
答:字符‘a’是打印字符,它的十进制数是97,二进制数是0110 0001,十六进制数是0x61,这时候自己计算的二进制数可以对比上面表格的二进制数是否一致?

三:ASCII码(字符)转换二进制和十六进制

现在来解释如何在不同进制之间转换这个 ASCII 码(97):

十进制转二进制:将十进制数值 97 转换为二进制数值。97 ÷ 2 的商为 48,余数为 1;48 ÷ 2 的商为 24,余数为 0;24 ÷ 2 的商为 12,余数为 0;12 ÷ 2 的商为 6,余数为 0;6 ÷ 2 的商为 3,余数为 0;3 ÷ 2 的商为 1,余数为 1;1 ÷ 2 的商为 0,余数为 1。将余数从最后一步开始排列,即可得到二进制数值 1100001。

十进制转十六进制:将十进制数值 97 转换为十六进制数值。97 ÷ 16 的商为 6,余数为 1;6 ÷ 16 的商为 0,余数为 6。将余数转换为相应的十六进制符号,即可得到十六进制数值 0x61。

二进制转十进制:将二进制数值 1100001 转换为十进制数值。从右往左,分别乘以 2 的相应幂次(从 0 开始),再将结果相加。即:1×2^6 + 1×2^5 + 0×2^4 + 0×2^3 + 0×2^2 + 0×2^1 + 1×2^0 = 64 + 32 + 1 = 97。

十六进制转十进制:将十六进制数值 0x61 转换为十进制数值。分别将 "6" 和 "1" 转换为对应的十进制数值,即可得到十进制数值 97。

所以,无论是二进制、十进制还是十六进制,它们都是可以相互转换的,只需要按照相应的计算规则进行转换即可。

道友:假如试都不试一下,那么一切都会是老样子

你可能感兴趣的:(嵌入式C语言,c语言,开发语言,mcu,物联网,单片机,嵌入式硬件)