C#计算机数据存储原理

本文详细介绍了计算机数据的存储方式,包括存储在硬盘、内存等位置,以及如何以二进制单元格形式存储数据。还探讨了进制之间的转换,如十进制转任意进制、任意进制之间的转换,并讲解了整数的存储,特别是补码、原码和反码的概念。最后,文章阐述了十进制负整数转二进制的具体算法。

目录

计算机数据的存储

数据的存储方式

存储在什么地方

怎样存储

进制之间的相互转换

都有哪些进制

十进制转换

任意进制之间的转换

整数的存储

原码

反码

补码

十进制负整数转二进制算法


计算机数据的存储

数据的存储方式

机器以正负电子的排列等方式来记录二进制数据

排列?不同数量、不同排列顺序

存储在什么地方

硬盘、内存

怎样存储

因为目前计算机能够存储的数据只有两个字符:0/1

这些硬件对于0/1的保存记录主要是以哪种形式进行记录------单元格方式记录

  1. 每个单元格的单位是比特-bit

  2. 最小的字符单元是字节-byte 1byte=8bit

  3. kb 1kb=1024byte

  4. mb 1mb=1024kb

  5. gb

  6. tb

  7. pb

数据存储的最终是二进制

计算机目前存储的数据种类很多:数字、字母、汉字、符号

一个字符:指的是人类所能够直接识别的一个单位,一个数字、一个字母、一个汉字、一个符号

01本质是数字所以计算机记录各种数据都是将其最终转为数字进行记录

进制之间的相互转换

整数的存储(字符集:UTF-8、Unicode、GB2312、BIG、GBK、ASCII......)

计算机起源于美国-宾夕法尼亚大学1946-冯·诺依曼

都有哪些进制

二进制:0,1,以0b开头

八进制:0,1,2,3,4,5,6,7 以0开头

十进制:0,1,2,3,4,5,6,7,8,9

十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 以0x开头

十进制转换

  1. 十进制转任意进制

给目标数字除以进制数,写余数,除到商为0,余数颠倒

例如:18转二进制=0b10010

  1. 任意进制转十进制

给数字进行从右至左进行编号(索引),每个位数乘以进制数的编号次方之和

例如:0b1010101=85

任意进制之间的转换

利用8421码

将每个二进制对应的位上计算一个固定的十进制数

1111

8421

  1. 二进制2位数组合

  2. 八进制3位数组合

  3. 十六进制4位数组合

例:

将0b1011101转成8进制==》

001 011 101 l//

1 3 5 =135

转成16进制

0101 1101

5 13 =5D

以十进制为桥梁

x进制>十进制>y进制

整数的存储

整数在计算机中存储是以补码的方式存储的,想要知道补码,必须先知道数字进制转换和原码和反码。

原码

将一个整数转换成二进制,然后最高位用来表示符号位(0表示正数,1表示负数,其余位表示数值位)

反码

正数的反码和原码一致,负数的反码位数全部取反,除最高位补码

补码

正数的补码和原码一致,负数的补码在反码的基础上末尾+1

十进制负整数转二进制算法

  1. 将十进制输出转化成二进制数,不管符号。

  2. 对转化的二进制数逐位取反

  3. 对取反后的二进制数加1,结果就是十进制负数转化成的二进制数

-122转成2进制

  1. 先把122转成二进制:计算机中存储的是64bit的大小字节=8byte

    0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111 1010

  2. 对二进制逐位取反:

    1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0101

  3. 取反后加1:

    1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0110

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值