太疯狂了数字符号(数字符号1的ascii码的十进制表示为49)

  • 2023-11-08
  • John Dowson

如:signedchar c = -6;如果在定义变量时既不加signed,又不加unsigned,C标准并未规定是按signed char处理

太疯狂了数字符号(数字符号1的ascii码的十进制表示为49)

 

由于字符是按其代码(整数)形式存储的,因此C99把字符型数据作为整数类型的一种但是,字符型数据在使用上有自己的特点,为此本节单独介绍1、字符与字符代码字符与字符代码并不是任意写一个字符,程序都能识别的例如圆周率π在程序中是不能识别的,只能使用系统的字符集中的字符,目前大多数系统采用ASCII字符集。

各种字符集(包括ASCII字符集)的基本集都包括了127个字符其中包括:字母:大写英文字母A~Z,小写英文字母a~z;数字:0~9;专门符号:29个:! " # & ( ) * + , - . / : ; ? [ \ ] ^ _ { | } ~

空格符:空格、水平制表符(tab)、垂直制表符、换行、换页不能显示的字符:空(null)字符(以\0表示)、警告(以\a表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等前已说明,字符是以整数形式(字符的ASCII代码)存放在内存单元中的。

例如:大写字母‘A’的ASCII代码是十进制数65,二进制形式为1000001小写字母‘a’的ASCII代码是十进制数97,二进制形式为1100001数字字符‘1’的ASCII代码是十进制数49,二进制形式为0110001

空格字符 的ASCII代码是十进制数32,二进制形式为0100000专用字符%的ASCII代码是十进制37,二进制形式为0100101转义字符\n的ASCII代码是十进制数10,二进制形式为0001010

可以看到,以上的字符的ASCII代号码最多用7个二进制就可以表示所以127个字符都可以用7个二进制表示(ASCII代码为127时,二进制形式为1111111,7位全是1)所以在C中,指定用1个字节(8位)存储一个字符(所有系统都不例外)。

此时,字节中的第1位置为0.2、字符变量字符变量是用类型符char定义字符变量char是英文character(字符的所缩写),见名即可知意如:char c=?;定义c为字符型变量并使初值为字符??的ASCII代码是63,系统把整数63赋给变量c。

c是字符变量,实质上是一个字节的整型变量,由于它常用来存放字符所以称为字符变量可以把0~127之间的整数赋给一个字符变量在输出字符变量的值时,可以选择以十进制整数形式输出,或以字符形式输出如:printf("%d %%c\n",c,c);输出结果是:63 ?用“%d”格式输出十进制整数63,用%c格式用字符形式输出字符?.。

字符型数据的存储空间和值的范围说明:在使用有符号字符型变量时,允许存储的值为-128~127,但字符的代码不可能为负值,所以在存储字符时实际上只用到0~127这一部分,其第1位都是0.如果将一个负整数赋给有符号字符型变量是合法的,但是它不代表一个字符,而作为一字节整型变量存储负整数。

如:signed char c = -6;如果在定义变量时既不加signed,又不加unsigned,C标准并未规定是按signed char处理还是按unsigned char处理,由各编译系统自己决定,这是和其他整型变量处理方式不同的,如int默认等同于signed int。

可以用以下方法测定本系统的处理方式:char c = 255; //把一个128~255之间的正数赋给cprintf("%d\n",c); //按十进制形式输出c的值在Visual C++系统上进行编译时,系统给出“警告”:“把一个整常数赋给char变量”。

表示255已超过char变量的数值允许范围,在运行时输出-1.说明Visual C++是把char默认为signed char类型的如果把第1行改为“unsigned char c=255;”,则不出现“警告”,且输出255.。

搜索微信公众号【balayihuier】或扫描下方二维码关注微信公众号,资深软件工程师带你手把手撸代码,从此走上人生巅峰,迎娶白富美!

公众号《吧啦一会儿》,手把手带你撸代码

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186