计算机领域涉及面之广阔相比大家都有所了解,每个领域都涉及众多知识,精通每个领域也是基本不可能的,至少博主认为自己目前没有这个精力和能力涉及每个领域,徘徊了好久博主终于决定了准备走哪门路线,C/C++/Linux运维路线,希望在这门领域有所造就,以下以及以后博主会不断更新内容,是博主在学习本领域过程中的一些领悟以及总结,希望它可以给你给我的学习能带来一些帮助。好了废话不多说开始。

首先我们先谈一下数据在计算机中存储




数据概述

计算机中处理的对象,如数字、字母、符号、文字、图形、声音、图像等各种数据,在计算机中的数据是以二进制的形式进行存储和运算的。

计算机当中数据的单位:

   位(bit:数据的最小单位,每个数码成为一位

   字节(byte:存储容量的基本单位

    字节、千字节、兆字节、吉字节,太字节

其换算公式如下

 1字节=8   1KB=1024B  1MB=1024KB  1GB=1024MB  1TB=1024GB




计算机中的数制

   概念数制也称计数制,是指用一种固定的符号和统一的规则来表示数值的方法。计算机中处理的数据往往是数字、字符、符号等形式出现的,但在计算机内部都是电子元件,只识别0和1的二进制符号,因此这些数据都被处理成二进制形式。也就是说,对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进

   常用数制

常用数制有二进制(Binary)、八进制(Octonary)、十进制(Decimal)、十六进制(Hexadecimal)。

     各个进制能使用的数码

二进制:01

  八进制01234567

  十进制0123456789

  十六进制0123456789ABCDEF

   数制中常用术语解释 

  数位指数码在一个数中所处的位置。

 基数指在某种进位计数制中,每个数位上所能使用的数码的个数,如八进制基数为8。

 位权指在某种进位计数制,每个数位上的数码所代表的大小,等于在这个数位上的数码乘上一个固定的数值,这个固定的数值就是此种进位计数制该位上的位权。数码所处的位置不同,代表数的大小也不同。例如,十进制中12341代表1X10^3八进制数2575代表5X8^

     不同进制数的表示:

  为了区分二、八、十、十×××种进制数,可以在数的后边加一个英文字母作为标识符,有时为了方便在数的后边加一个该进制的基数作为标识符。二进制用BBinary,八进制用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进制,以十六进制呈现是为了便于观察。

 


                                        以上是我的一点总结,有什么不对的地方欢迎指正