必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-10-09 15:44:43来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

二进制数

计算机底层说到底是一堆电路,一个电路只有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编码

计算机内的信息流

最终处理的都是二进制的信号;

为了方便计算机和人类信息传递,出现了不同层次的语言(一系列规则):

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

相关阅读

生成随机数(C语言,任意随机)

随机函数用于产生伪随机数,需要头文件stdlib.h。int rand()可以产生一个[0,RAND_MAX]范围内的伪随机数,其中RAND_MAX是一个系统定义

流程图那么多,你数得过来吗?

在看文章时,我们时不时会碰到各种流程图:业务流程图、功能流程图、页面流程图、用户操作流程图、系统流程图等等这些叫得出名叫不出

多线程之pthread_create()函数

总述:pthread_create是(Unix、Linux、Mac OS X)等操作系统的创建线程的函数。它的功能是创建线程(实际上就是确定调用该线程函数的入

SQL Server数据库学习(1)

在前几天,我下载了SQL Server2017版,并且完成了相应配置。 在自己进行实验的过程中发生了两个问题。由于下载中的疏忽,我没有注意SQL

浅谈经济型连锁酒店行业的数据分析(一)

文章分享了经济型连锁酒店行业的相关数据的分析方法,希望能够对你有所帮助。随着“大旅游”、“大住宿”的概念兴起,酒店行业作为其

分享到:

栏目导航

推荐阅读

热门阅读