要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。
—— 《枫》
这篇文章将继续为对C语言感兴趣的大佬们各位带来关于八进制数和十六进制数、ASCII编码与操作符的介绍。
目录
八进制数和十六进制数
介绍
把进制数是用数字0~7书写的。八进制数的每一位表示一个8的幂(就像十进制数的每一位表示10的幂一样)。因此,八进制数 237 表示成十进制数计算如下图左侧:(2*8^2+3*8^1+7*8^0=128+24+7=159)
十六进制数是用数字0~9加上字母A~F书写的,其中字母A~F表示10~15的数。十六进制数的每一位表示一个16的幂,十六进制数 1AF 的十进制数值计算如上图右侧:(1*16^2+10*16^1+15*16^0=256+160+15=431)
注意:
- 十进制数一定不能以零开头:
15 255 32767
- 八进制数必须以零开头:
017 0377 07777
- 十六进制数中字母既可以是大写,也可是小写:
0xff 0xfF 0Xff 0XFF
ASCII编码
上一篇说这次为大家介绍ASCII编码表,我来咯。
介绍
我们知道在计算机中所有的数据都是以二进制的形式存储的,那这些字符在内存中分别以什么样法人二进制存储的呢?
如果我们自己给这些字符中的每个字符编一个二进制序列,这个叫做编码,为了方便大家通信,不造成混乱,后来美国国家标准学会(ANSI)出台了一个标准ASCII编码,C语言中的字符就遵循了ASCII编码的方式。
码表
参考:https://zh.cppreference.com/w/c/language/ascii
注意:
我们不需要记住所有的ASCII码表中的数字,使用时查看就可以,不过我们最好能掌握几组特殊的数据:
- 字符A~Z的ASCII码值从65~90
- 字符a~z的ASCII码值从97~122
- 对应的大小写字符(a和A)的ASCII码值的差值是32
- 数字字符0~9的ASCII码值从48~57
- 换行 \n 的ASCII值是:10
- 在这些字符中ASCII码值从0~31这32个字符是不可打印字符,无法打印在屏幕上观察
运算符
分类
运算符是构建表达的基本工具,C语言拥有异常丰富的运算符。
- 算术运算符
- 赋值运算符
- 自增自减运算符
本次只对算术运算符进行基本介绍,其余介绍请待下篇。
算术运算符
这类运算符可以执行加法、减法、乘法和除法。
加减运算符( + 和 – )
加法类运算符和乘法类运算符都属于二元运算符,因为他们需要两个操作数。一元运算符只需要一个操作数:
a = +1; // + 是一元运算符号
b = -1; // - 是一元运算符号
一元运算符主要用于强调某数值常量的正负。
#include <stdio.h>
int main()
{
int x = 44 + 22;
int y = 66 - 34;
printf("%d\n",x); //打印出66
printf("%d\n",y); //打印出32
return 0;
}
上图为二元运算符( + 和 – )的应用。
乘法运算符(*)
运算符 * 用来完成乘法。
#include <stdio.h>
int main()
{
int num = 5;
printf("%d\n",num*num); // 输出25
return 0;
}
除法运算符( / )
运算 / 用来完成除法
除号的两端如果是整数,执行的是整数除法,得到的结果也是整数。
#include <stdio.h>
int main()
{
float x = 6 / 4;
int y = 6 / 4;
printf("%f\n",x); //输出1.000000
printf("%d\n",y); //输出1
return 0;
}
上面示例中,尽管变量 x 的类型是 float ,但是 6 / 4 得到的结果是 1.000000 (默认保留六位小数),而不是 1.5 。原因就在于C语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。
如果希望得到浮点数结果,两个运算数就必须至少有一个浮点数,这时C语言就会进行浮点数除法。
#include <stdio.h>
int main()
{
float x = 6.0 / 4; //或者写成 6 / 4.0
printf("%f\n",x); //输出 1.500000
return 0;
}
上面示例中, 6.0 / 4 表示进行浮点数除法,得到的结果就是 1.5。
再看一个例子:
#include <stdio.h>
int main()
{
int score = 5;
score = (score / 20) * 100; //输出0
return 0;
}
上面的代码,你可能会觉得经过运算,score 会等于 25 ,但实际上 score = 0。这是因为
score / 20 是整除,会得到一个整数值 0 ,所以乘以 100 后得到的也是 0 。
为了得到预想的结果,可以将除数 20 改为 20.0,让整数除法变成浮点数除法。
#include <stdio.h>
int main()
{
int score = 5;
score = (score / 20.0) * 100; //输出25
return 0;
}
求余(模)运算符( % )
运算符 % 表示求余运算,即返回两个整数相除的余值。这个运算符只能用于整除,不能用于浮点数。
#include <stdio.h>
int main()
{
int x = 6 % 4;
printf("%d\n",x); //输出2
return 0;
}
负数求余的规则是,结果的正负号由第一个运算数正负号决定。
#include <stdio.h>
int main()
{
printf("%d", 11 % -5); //输出 1
printf("%d",-11 % -5); //输出 -1
printf("%d",-11 % 5); //输出 -1
}
上面的示例中,第一个运算数的正负号( 11 或 -11 )决定了结果的正负。
好啦,今天的分享到这儿就结束了,感谢大佬能看到这里,感谢支持,感恩!!!
当你在荒废时间,有多少人在拼命。别在最该奋斗的日子,选择了安逸。
今天的文章c语言8进制和16进制字符串_c语言八进制字符表示方法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85208.html