1.2 编码什么的

本文介绍了编程基础知识,包括if、elif、else等条件语句的理解方法,并强调了数学对于编程的重要性。此外,还详细讲解了字符和数字在二进制中的表示方式,以及原码、反码和补码的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.2 讲一下编码什么的

Crossin写了一篇番外简单讲了一下2.7和3的一些区别,和我之前写的意思差不多。后面教程的我觉得应该没有什么问题了,大家就跟着看看写写吧。

if,elif,else这些是不是把你看晕了?所以说咱们数学一定要好好学。如果你正在上高中,那么记着:数学必修三一定要好好学!特别是程序框图那块!

如果你还没有学到程序框图而先学了编程,那么你在学习这一块的时候可以把框图翻译成程序;学习框图之后,在看程序时遇到比较复杂的循环嵌套啥的可以画个框图整理一下逻辑。

必修三二进制那一块儿······了解好二进制可以帮助你更好的理解计算机。你现在知道为什么1GB=1024MB了吗?

1.2.1 字符在二进制中是怎么表示的

程序猿常识:

看了这个,你知道为什么1KB≠1000B了吧(和正常单位不同)?知道为啥买的U盘总是比厂家标的小了吧?

讲到这里,又应该普及一下关于字符集的常识,这有助于你理解计算机是如何将二进制变成我们读得懂的字母的:

看不懂?看看ASCII码表体会一下:

二进制十进制十六进制缩写名称/意义
0000 0000000NUL空字符(Null)

以上是控制字符

二进制十进制十六进制图形
0010 00003220(空格)
0010 00013321!
0100 00016541A
0100 00106642B
0100 00116743C

以上是可显示字符

Unicode同样原理,只是字符多很多。
就酱,伟大的程序猿发明了与机器交流的方法,踏入了新时代~

另外,0x几几是表示十六进制,为了不与十进制搞混(例如十进制的10和十六进制的10是不同的),类似的,0b几几就表示二进制。十六进制的存在是为了解决二进制太长的问题,而且它又正好是2的4次方。

1.2.2 数字在二进制中又是怎么表示的

我们知道字符的’1’其实并不是1,那么-1在计算机中又是怎么表示的呢?这就要讲到原码、反码和补码了。为了表示正负,二进制中牺牲了最高位(也就是最左边的一位)的一位空间。若是正数符号位置0,负数则置1。于是+2是0010(假设用4bit来表示),-2是1010,这就是我们的原码。但是咱们的计算机只会加法,减法要怎么实现呢?于是出现了反码补码。把一个负数除了符号位的其它位取反,就是反码;把反码再+1,就是补码了(正数反码、补码与原码一样)。

补码有啥好处呢?在做减法的时候,只要两个数的补码相加就实现了。数学上的原理——优快云

如果不考虑正负,就是无符号数。由于多了一位符号位,它能表示的最大数值就大了一倍。

既然位数有限,那么能表示的最大/最小数就有限(你可以算算8bit最大/最小能表示几),就需要考虑溢出。例如你在4bit下要用0111加0001,变成1000,咦?正数加正数变成负数了?这就是溢出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值