数据概述与进制转换

什么是数据

数据是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。

数据是信息的表现形式和载体,信息是数据的内涵。数据本身没有意义,数据只有对实体行为产生影响时才成为信息。

计算机中的数据按照表现形式可分为两类:

  • 数字数据:由阿拉伯数字符号构成的数据。如各种统计或量测数据
  • 模拟数据:在某个区间内产生的连续值,如视频、图像、声音等

在计算机系统中,数据以二进制信息单元0、1的形式表示。

进制及进制转换

1.计算机采用二进制的主要原因

  • 技术实现简单
  • 简化运算规则
  • 适合逻辑运算
  • 易于进行转换
  • 二进制表示数据具有抗干扰能力强,可靠性高等优点

2.二进制、十进制转换

(1)二进制转十进制:按权位求和

  • 二进制数110001-->1*26-1+1*25-1+0*24-1+0*23-1+0*22-1+1*21-1= 十进制数49

(2)十进制转二进制:除二取余法

3.八进制、二进制、十进制转换

(1)八进制转十进制:按权位求和

  • 八进制数10-->1*82-1+0*81-1= 十进制数8

(2)二进制转八进制:三位一组,转换为十进制数,然后拼接

  • 二进制数11101010-->011 101 010-->3 5 2--> 八进制数352

4.十六进制、二进制、十进制转换

(1)十六进制转十进制:按权位求和

  • 十六进制数4AF8B-->4*165-1+10*164-1+15*163-1+8*162-1+11*161-1= 十进制数307083

(2)二进制转十六进制:四位一组,转换为十进制数,然后拼接

  • 二进制数01001010111110001011-->0100 1010 1111 1000 1011-->十六进制数4AF8B

(3)十六进制转二进制:将每一位十六进制数用对应的四位二进制数替代

  • 十六进制数4AF8B-->4 A F 8 B-->0100 1010 1111 1000 1011

机器数与真值

机器数:一个数在计算机中的二进制表现形式,叫做这个数的机器数。机器数是带符号的,计算机用一个数的最高位存放符号,正数为0,负数为1。

  • 如十进制数 +7,计算机字长为8位,转换为二进制就是00000111。如果是-7,即为10000111。这里的00000111和10000111就是机器数。

真值:将带符号位的机器数对应的真正数值称为机器数的真值。

  • 机器数的第一位是符号位,所以机器数的形式数值不等于真正的数值。例如上面的有符号数10000111,最高位1代表负,其真值为-7,而形式值(10000111转换成十进制数)为135。

原码、反码及补码

人脑可以知道第一位是符号位,选择对真值区域加减,但计算机辨别“符号位”会让计算机的基础电路设计变得十分复杂,于是人们想出了将符号位也参与运算的方法,减去一个正数等于加上一个负数,所以机器可以只有加法,这样计算机运算的设计就更简单了。

人们为了将符号位参与运算,并且只保留加法,从而简化计算机运算,发明了原码、反码和补码。

原码、反码、补码都是有符号的用二进制表示数的方法,均由符号位和数值位构成。

1.原码

原码是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。

  • +25的原码=0001 1001
  • -25的原码=1001 1001
  • 8位二进制数的取值范围是[1000 0000,0111 1111],即[-128,127]。补码范围[0000 0000,0111 1111],补码0000 0000的原码是1000 0000,符号位同时也可以看做数字位,即表示-128。

2.反码

正数的反码是其本身

负数的反码是在其原码的基础上,符号位不变,其余各个位取反

  • +25-->原码0001 1001-->反码0001 1001
  • -25-->原码1001 1001-->反码1110 0110

3.补码

正数的补码是其本身

负数的补码是其反码+1

  • +25-->原码0001 1001-->反码0001 1001-->补码0001 1001
  • -25-->原码1001 1001-->反码1110 0110-->补码1110 0111

在计算机系统中,数值一律用补码表示(存储)

原文地址:https://www.cnblogs.com/lypython/p/9081655.html

时间: 2024-11-09 15:21:47

数据概述与进制转换的相关文章

2.5 数据类型转换与进制转换

2.5.1    数值类型转换 源类型 目标类型 转换方法 示例 bool.byte.char.double.decimal.float.long.short.sbyte.string.uint.ulong.ushort int Convert.ToInt32(Type value) int num = Convert.ToInt32("30"); string int int.Parse(string s) int num = int.Parse("20"); s

【ACM】大数据+任意进制转换 jobdu 1080

[九度OJ] 1080 进制转换 题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36).下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出. 输出: 输出X的N进制表示的数. 样例输入: 16 10 F 样例输出: 15 提示: 输入时字母部分为大写,输出时为小写,并且有大数据. 这题考察的比较综合,进制转换+大数据 很久没有做ACM的题目了,且拿这个练练手,大整数模板是用的王道论坛的模板-贴出来备

Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) 2.标识符 2.1.给类,接口,方法,变量起名字的字符 2.2.组成规则(A:英文大小写,B:数据,C:$ _) 2.3.注意事项(不能为数字开头,不能是java中的关健字,区分大小写) 2.4.常见的命名规则(见名知意) A:包   全部是小写 单级包:小写 如:peng,com 多级包:小写

2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对keyword有特殊颜色标记 2:标识符(掌握) (1)就是给类,接口.方法,变量等起名字的字符序列 (2)组成规则: A:英文大写和小写字母 B:数字 C:$和_ (3)注意事项: A:不能以数字开头 B:不能是java中的keyword C:区分大写和小写 (4)常见的命名规则(见名知意) A:

JavaSE学习(二):进制转换-数据类型转换-Java运算符

一.进制转换 1.1 其他进制转十进制(以十六进制为例): 十六进制范围:0-9, A-F对应数字10-15 2A7E(16)  =  14*16(0) +7*16(1) + 10*16(2)  + 2*16(3) =  10878(10) 1.2 十进制转二进制:将十进制数除以2,取余数,将最后一位余数排在第一位,倒数第二位的数排在第二位,依次排列,构成的01数字串即为表示该十进制数的二进制数. 总结:十进制%二进制 余数 0-1(Java中符号 "%"表示取余),逆序排列. (图片

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

超级(无限)大的 --- 整型10进制数据与16进制数据相互转换

<html> <title>超级(无限)大的 --- 整型10进制数据与16进制数据相互转换</title> <head> <meta charset="utf-8"/> <meta name="keywords" content="数据压缩算法,超过整数表示范围的大数据算术运算,大进制数据互相转换" /> <meta name="keywords"

计算机基础知识(一)——进制转换

由于去年是十月一之后才来的提高班,所以错过了米老师讲的一些基础知识,现在跟着十二期一起听课,把欠下的补回来! 一.计算机为什么使用二进制,而不是用十进制,十六进制? 大家都知道计算机内部都是用二进制来处理数据的,那么大家知道为什么使用二进制,而不是十进制,十六进制吗?其实原因很简单,就是简单,因为二进制只有0和1,它再怎么组合也是0和1,运算很简单嘛! 二.进制转换 在转换之前,我们先要知道二进制的"权重".1,2,4, 8, 16, 32, 64, 128,转换的时候都是以权重为基础

ACM——进制转换

http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1012 进制转换 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:1362            测试通过:395 描述 将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10. 输入 多行.第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000