【计算机理论基础】二进制与数/字

计算机底层说到底是一堆电路,一个电路只有2种状态:通和不通。N个电路就可以有2^N次个状态的组合,它们排列组合成一个序列。
这个序列被人设的,按照规则进行了解释。
一堆无序的排列组合需要赋予人类世界的意义,所以确立了二进制到符号(字符、数字)的规则。
符号是被认为携带意义的感知。
意义就是一个符号可以被另外的符号解释的潜力。符号之间解释的链,即可达到信息交换的目的。

我们学习就是要理解这种既定的规则。

人类世界沟通和交流用的是语言和符号,不同母语的国家交流需要翻译。计算机与人类传递信息,需要翻译。

主要(目前我的理解深度而言)两大类:

  • 数,代表人类世界的数字,核心作用,计算。
  • 字,代表人类世界的语言,核心作用,交流。

尽管在计算机内部,数字的表象被包含在字符内,也就是字符集中有可以表示数字的字符,但从作用上来说,表象和实质还是有差异。从代码上来看差异:

int a=124;
string b="124";
char c='124';
//没写过程序的人看到124,认为他们是一个东西。但是在计算内部,却是3种信息。
//代码写的是人,但是传递给计算机处理的时候,负责解释这些字符的是编译器。

理解byte

计算机中一个电子元件的状态是1bit(通或不通),而人设的规定存储信息的最小单元是一个字节即 8 个 bit,即1byte。
这里byte的意义有两种:

  • 表征计算机处理信息的最小单元;就是装载信息的最小单元,不管你的容量需求是多小,给你的最小的就这么大。 量不够再按基本单元加。
  • 作为一种基本的数据类型(Java有,C没有);

它组合是:
00000000-11111111
被解释为10进制的0-256(2^8次方)种变化的信息量。

数的规则

主要围绕着二进制如何被解释为数,或者反向的数如何用二进制来表达。

数分配的存储资源大小

Java中八种基本数据类型:short、int、long、float、double、boolean、byte、char。每种类型都按传统规定了存储在计算机当中占据空间的大小,好比限定了装载这些数的盒子。
byte b; 1字节
short s; 2字节
int i; 4字节
long l; 8字节
float f; 4字节
double d; 8字节
boolean bool; false/true 1字节
char c; 2字节(C语言中是1字节)
为什么要这么做呢?这是一个很有意思的问题,根本上说还是在于计算机资源是有限的。人设的规定数据范围和大小,是为了限定申请资源方对计算机资源占用过多,或者说是为了让计算机“物尽其用”,合适的大小在性能上也有一定差异。所以出现的溢出(通俗的说是给装载数的壳子被数给撑爆了),未考虑到场景下的数的大小。
计算机资源是有限的,所以无法表征无理数及无限循环小数,只能在精度范围内取近似值。

数的范围

数的范围是排列组合的范围。
分有符号和无符号,有符号的首位做符号位。
无符号范围:0 --(2的N次方)-1
有符号范围:负的(2的N-1次方)到(2的N-1次方)-1

如short

字的规则

涉及到编码。网上文章很多,比如计算机编码总结
也可以看看这篇:彻底弄懂uinicode编码

计算机内的信息流转

最终处理的都是二进制的信号;
为了方便计算机和人类信息传递,出现了不同层次的语言(一系列规则):

  • 机器语言:每一条机器指令都是二进制形式的指令代码,计算机硬件可以直接识别。高级语言程序通常也需要翻译成汇编语言程序,再进一步翻译成机器语言代码。机器指令代码是被烙印在硬件上的,写死的,所以不同厂商会有不同的指令编码集。
  • 汇编语言:是为了便于理解与记忆,将机器指令用助记符代替而形成的一种语言。汇编语言的语句通常与机器指令对应,因此,汇编语言与具体的计算机有关,属于低级语言。
  • 高级语言:与具体的计算机硬件无关,其表达方式接近于所描述的问题,易为人们接受和掌握,用高级语言编写程序要比低级语言容易得多,并大大简化了程序的编制和调试,使编程效率得到大幅度的提高。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

windanchaos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值