计算机领域涉及面之广阔相比大家都有所了解,每个领域都涉及众多知识,精通每个领域也是基本不可能的,至少博主认为自己目前没有这个精力和能力涉及每个领域,徘徊了好久博主终于决定了准备走哪门路线,C/C++/Linux运维路线,希望在这门领域有所造就,以下以及以后博主会不断更新内容,是博主在学习本领域过程中的一些领悟以及总结,希望它可以给你给我的学习能带来一些帮助。好了废话不多说开始。
首先我们先谈一下数据在计算机中存储
数据概述
计算机中处理的对象,如数字、字母、符号、文字、图形、声音、图像等各种数据,在计算机中的数据是以二进制的形式进行存储和运算的。
计算机当中数据的单位:
位(bit):数据的最小单位,每个数码成为一位
字节(byte):存储容量的基本单位
字节、千字节、兆字节、吉字节,太字节
其换算公式如下:
1字节=8位 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
计算机中的数制
概念:数制也称计数制,是指用一种固定的符号和统一的规则来表示数值的方法。计算机中处理的数据往往是数字、字符、符号等形式出现的,但在计算机内部都是电子元件,只识别0和1的二进制符号,因此这些数据都被处理成二进制形式。也就是说,对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。
常用数制
常用数制有二进制(Binary)、八进制(Octonary)、十进制(Decimal)、十六进制(Hexadecimal)。
各个进制能使用的数码
二进制:0、1
八进制:0、1、2、3、4、5、6、7
十进制:0、1、2、3、4、5、6、7、8、9
十六进制:0、1、2、3、4、5、6、7、8、9A、B、C、D、E、F
数制中常用术语解释
数位:指数码在一个数中所处的位置。
基数:指在某种进位计数制中,每个数位上所能使用的数码的个数,如八进制基数为8。
位权:指在某种进位计数制,每个数位上的数码所代表的大小,等于在这个数位上的数码乘上一个固定的数值,这个固定的数值就是此种进位计数制该位上的位权。数码所处的位置不同,代表数的大小也不同。例如,十进制中1234中1代表1X10^3八进制数257中5代表5X8^1
不同进制数的表示:
为了区分二、八、十、十六四种进制数,可以在数的后边加一个英文字母作为标识符,有时为了方便在数的后边加一个该进制的基数作为标识符。二进制用B(Binary),八进制用O(octal)、十进制用D(decimal)、十六进制用H(hexadecimal),D是可以省略的,即省略标识符的是十进制数,另外为了便于识别八进制数和十六进制数,通常八进制数是以0开头,而十六进制数是以0x开头。
进制之间的转化
非十进制与十进制的相互转化(即:八进制、十六进制、二进制<------------>十进制)
1) 八进制、十六进制、二进制-------------->十进制
方法:将相应进制的数按权展成多项式,按十进制求和。
(10011.01)2
=1×24+0×23+0×22+1×21+1×20+0×2-1+1×2-2
=16+2+1+0.25
=19.25
2) 十进制-------------->八进制、十六进制、二进制
方法:都是按照整数部分除以基数取余,小数部分乘以基数取整
非二进制与二进制相互转化(即:八进制、十六进制<------------->二进制)
1) 二进制与八进制间的转换
方法:从小数点开始,将二进制数的整数和小数部分每三位分为一组,不足三位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的八进制码替代,即得目的数。
2) 二进制与十六进制间的转换
方法:从小数点开始,将二进制数的整数和小数部分每四位分为一组,不足四位的分别在整数的最高位前和小数的最低位后加“0”补足,然后每组用等值的十六进制码替代,即得目的数
补充 :
任何数在内存中都是以二进制补码的形式存放的.
正数的补码就是其本身的二进制.
负数的补码是其绝对值的二进制的反码加+1.
IDE中是以16进制的呈现的,也就是说查看变量时你会发现是以16进制数表示的,但是要注意计算机存储仍然是2进制,以十六进制呈现是为了便于观察。
以上是我的一点总结,有什么不对的地方欢迎指正