开发者社区> 像教授> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[软件开发必备]计算机基础知识

简介:
+关注继续查看

越来越觉得有些基础知识太重要了,最近在疯狂的补回来,有的以前学了,现在淡忘了,有的当初学的就不好。

没有关系,最近都开始补回来。应验了那句话“出来混,迟早要还的。”

下面是我总结的一些基础必备,如果大家觉得还需要补充哪些知识,还请提出来,我们一起补习。

 

Bit比特

Byte字节

KB千字节

MB兆字节

GB千兆字节

TB吉字节

无符号整数

有符号正数

原码

正数的补码

负数的补码

补码的绝对值(称为真值)

补码到真值(负数)的转换

真值(负数)到补码的转换

符号位扩展

溢出

无符号整数

有符号整数

逻辑运算

与:

或:

非:

异或:

ASCII

floatdouble的范围和精度

范围

精度

 

 

Bit比特

(比特,也称位)是最小单位,01

8bit的宽度(即8条线路),可以表示28=256个不同的状态(0000 0000-1111 1111)。

通常kbit的组合可以表达2k个不同状态,每个状态分别是k01bit序列组合。我们称该01的序列为编码,每个编码对应一个特定的值或状态。

5表示为0000 0101

 

Byte字节

字节,B

一个字母一个字节,一个数字一个字节,一个汉字两个字节

1Byte=8bit

KB千字节

千字节

1KB=210Byte=1024B

MB兆字节

兆字节

1MB=210KB

GB千兆字节

千兆字节

1GB=210MB

 

TB吉字节

吉字节

1TB=210GB

 

 

无符号整数

所有位都用来表示一个数,没有用来表示负数的位,所以只能表示正数。

kbit则可以表示2k个无符号整数(从02k-1)。5-bit可以表示的数值范围是0-31.

 

有符号正数

左边第一位是符号位,0代表正数,1代表负数。

原码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面

 

增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为10有两种表示:+0-0),其余位表示数值的大小。

简单直观;例如,我们用8位二进制表示一个数,+11的原码为00001011-11的原码就是10001011

原码就是绝对值的二进制,最前面加上一个符号位表示正负。

 

正数的补码

  与原码相同。

【例1+9的补码是00001001(备注:这个+9的补码说的是用8位的2进制来表示补码的,补码表示方式很多,还有162进制补码表示形式,以及322进制补码表示形式等。)

负数的补码

  负数的补码是对其原码逐位取反,但符号位除外;然后整个数加1

  同一个数字在不同的补码表示形式里头,是不同的。比方说-15的补码,在82进制里头是 11110001,然而在162进制补码表示的情况下,就成了1111111111110001。在这篇补码概述里头涉及的补码转换默认了把一个数转换 成82进制的补码形式,每一种补码表示形式都只能表示有限的数字。

  【例2】求-7的补码。

  因为给定数是负数,则符号位为“1”

  后七位:-7的原码(10000111按位取反(11111000)(负数符号位不变)111111001

  所以-7的补码是11111001

  已知一个数的补码,求原码的操作分两种情况:

  (1)如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

  (2)如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。

  再举一个例子:求-64的补码

  +6401000000

11000000

 

补码的绝对值(称为真值)

  【例4-65的补码是10111111

  若直接将10111111转换成十进制,发现结果并不是-65,而是191

  事实上,在计算机内,如果是一个二进制数,其最左边的位是1,则我们可以判定它为负数,并且是用补码表示。

  若要得到一个负二进制数的绝对值(称为真值),只要各位(包括符号位)取反,再加1,就得到真值。

  如:二进制值:10111111-65的补码)

  各位取反:01000000

101000001+65的补码)

 

 

 

补码到真值(负数)的转换

忽略符号位,其他位取反,然后加1,算出除去符号位的值,加上负号。

真值(负数)到补码的转换

先求绝对值的二进制,然后取反,然后加1,然后第一位置1作为符号位,表示当前码为负数。

 

符号位扩展

在二进制正数前面加任意多的0不会改变其值,在二进制负数前面加任意多的1(符号位扩展Sign Extension)不会改变其值。我们称这样的操作为“符号扩展”。符号扩展主要用在另个不同长度的二进制数相加的场合。

 

溢出

无符号整数

相加溢出表现为高位被隐藏,例如千年虫问题。

 

有符号整数

有符号整数相加可能会导致最高位的符号位发生变化。

两个正数相加的结果必然是正数,如果是负数,说明溢出了。两个负数相加的结果必然是负数,如果是正数,说明溢出了。

事实上,只有在两种同符号运算情况下,才会发生溢出。一个正数和一个负数相加,永远不可能溢出。

 

逻辑运算

0true0false

与:

二元运算符,只有两个操作数同为1,结果为1,否则结果为0.

或:

二元运算符,只要一个操作数为1,结果为1,否则结果为0.

非:

一元运算符,取反操作。

异或:

二元运算符,操作数相反,结果为1,否则结果为0.

 

ASCII

8-bit编码方式叫做ASCII码。

 

floatdouble的范围和精度

范围

floatdouble的范围是由指数的位数来决定的。

float的指数位有8位,而double的指数位有11位,分布如下:

float

1bit(符号位)

8bits(指数位)

23bits(尾数位)

double

1bit(符号位)

11bits(指数位)

52bits(尾数位)

于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308

精度

floatdouble的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

float2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。




本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/806453,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
计算机网络基础知识总结(三)
传输时延和传播时延的比较
19 0
计算机网络基础知识总结(二)
TCP/IP 协议簇 TCP/IP 协议是我们程序员接触最多的协议,实际上,TCP/IP 又被称为 TCP/IP 协议簇,它并不特指单纯的 TCP 和 IP 协议,而是容纳了许许多多的网络协议。
22 0
计算机应用基础——计算机软件(三)
计算机应用基础——计算机软件(三)
18 0
计算机应用基础——计算机软件(一)
计算机应用基础——计算机软件(一)
50 0
【计算机网络】计算机网络基础知识笔记
【计算机网络】计算机网络基础知识笔记
55 0
计算机网络基础知识总结(一)
如果说计算机把我们从工业时代带到了信息时代,那么计算机网络就可以说把我们带到了网络时代。随着使用计算机人数的不断增加,计算机也经历了一系列的发展,从大型通用计算机 -> 超级计算机 -> 小型机 -> 个人电脑 -> 工作站 -> 便携式电脑 -> 智能手机终端等都是这一过程的产物。计算机网络也逐渐从独立模式演变为了 网络互联模式 。
78 0
计算机网络基础知识总结(二)
TCP/IP 协议簇 TCP/IP 协议是我们程序员接触最多的协议,实际上,TCP/IP 又被称为 TCP/IP 协议簇,它并不特指单纯的 TCP 和 IP 协议,而是容纳了许许多多的网络协议。
39 0
计算机网络基础知识
计算机网络的基础知识 1.计算机网络的分类方法 1.按覆盖的地理范围划分,计算机网络可以分为:广域网、城域网、局域网、个人区域网和人体区域网。 1)广域网、 广域网具有两个主要的特征: (1)是一种公共数据网络PDN(Public Data Network)。 ​ 广域网建设投资大,管理困难,通常由电信运商负责组建、运营与维护。这类广域网为广大用户提供高质量的数据传输服务,因此,属于公共数据网络。 (2)研究的重点是宽带核心交换技术。 ​ 作为Internet的宽带、核心交换平台的组成单元,其研究的重点从开始阶段的“如何接入不同类型的计算机系统”,转变为“如何提供能够保证服务
134 0
计算机网络基础知识.
一、计算机网络分类     局域网(Local Area Network,LAN)是在一个局部的地理范围内(如一个企业、一个学校或一个网吧),一般是方圆几千米以内,将各种计算机、服务器、外部设备等互相连接起来组成的计算机通信网。
1768 0
+关注
1338
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载