Lesson 001 —— 数据

Lesson 001 —— 数据

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据是信息的表现形式和载体,可以使符号、文字、数字、语音、图像、视频等。

进制

进制也就是进位制,是人们规定的一种进位方式。

  • 十进制

    • 数码:指集合论中刻画任意集合所含元素数量多少的一个概念。

      十进制的基本符号是:0, 1, 2, 3, 4, 5, 6, 7, 8, 9,我们把这些称之为十进制的数码,也就是基本符号,所有的十进制数都是由这十个数码组成。每位在加时都是“逢十进一”。

    • 位权:数制中每一固定位置对应的单位值称为位权。

      我们可以从 0 开始,对数字的各个数位进行编号,即个位起,从右向左依次编号为0, 1, 2, ...;对称的,从小数点后的数位则为-1, -2, ...;而 n 位所代表的权的大小为 10n-1

  • 二进制

    在计算机系统中采用的进位计数制。在二进制中,数用0和1两个符号来描述。计数规则是逢二进一,借一当二。

  • 数制符号

    二进制 B (binary)

    八进制 O (octal)

    十进制 D (decimal)

    十六进制 H (hexadecimal)

进制转换

  • 其它进制转十进制

    将其它进制按权位展开,然后各项相加,就得到相应的十进制数。

    例1: N=(10110.101)B=(?)D
    按权展开N=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0+1*2^-1+0*2^-2+1*2^-3
    =16+4+2+0.5+0.125 =(22.625)D
  • 将十进制转换为其它进制

    分两部分进行的即整数部分和小数部分。

    • 整数部分:(基数除法)

      把我们要转换的数除以新的进制的基数,把余数作为新进制的最低位;

      把上一次得的商在除以新的进制基数,把余数作为新进制的次低位;

      继续上一步,直到最后的商为零,这时的余数就是新进制的最高位.

    • 小数部分: (基数乘法)

      把要转换数的小数部分乘以新进制的基数,把得到的整数部分作为新进制小数部分的最高位

      把上一步得的小数部分再乘以新进制的基数,把整数部分作为新进制小数部分的次高位;

      继续上一步,直到小数部分变成零为止。或者达到预定的要求也可以。

  • 二进制与八进制、十六进制的相互转换

    二进制转换为八进制、十六进制:它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可。

    八进制、十六进制转换为二进制时,把上面的过程逆过来即可。

二进制运算

  • 算数运算

    二进制的算数运算包括:加、减、乘、除四则运算。

    1. 二进制的加法

      根据“逢二进一”规则,二进制数加法的法则为:

      0+0=0
      0+1=1+0=1
      1+1=0 (进位为1) 
      1+1+1=1 (进位为1)

      01-01

    2. 二进制的减法

      根据“借一有二”的规则,二进制数减法的法则为:

      0-0=0
      1-1=0
      1-0=1
      0-1=1 (借位为1)

      01-02

    3. 二进制的乘法

      二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:

      0×0=0
      0×1=1×0=0
      1×1=1

      01-03

    4. 二进制的除法

      二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。

      01-04

      说明:乘除法分原码乘法和补码乘法。

  • 逻辑运算

    二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。

    1. 逻辑“或”运算

      又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:

      0+0=0 或 0∨0=0
      0+1=1 或 0∨1=1
      1+0=1 或 1∨0=1
      1+1=1 或 1∨1=1

      可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。

    2. 逻辑“与”运算

      又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:

      0×1=0 或 0·1=0 或 0∧1=0
      1×0=0 或 1·0=0 或 1∧0=0
      1×1=1 或 1·1=1 或 1∧1=1

      见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。

    3. 逻辑“非”运算

      又称为逻辑否定,实际上就是将原逻辑变量的状态求反,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。

    4. 逻辑“异或”运算

      “异或”运算,常用符号“”或“”来表示,其运算规则为:

      00=0 或 00=0
      01=1 或 01=1
      10=1 或 10=1
      11=0 或 11=0

      可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1。

机器数与真值

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

原码、反码、补码

为了将符号位参与运算,并且只保留加法,从而简化计算机运算,发明了原码、反码和补码。它们都是用有符号的二进制数表示的方法,均由符号位数值位构成。

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

    [+1]原 = 0000 0001
    [-1]原 = 1000 0001
  • 反码:正数的反码是其本身;负数的反码是其在原码的基础上,符号位不变,其余各个位取反。

    [+1] = [0000 0001]原 = [0000 0001]反
    [-1] = [1000 0001]原 = [1111 1110]反
  • 补码:正数的补码是在其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后 +1(即在反码的基础上 +1)。

    [+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补
    [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补
    [+0] = [0000 0000]原 = [0000 0000]反 = [0000 0000]补
    [-0] = [1000 0000]原 = [1111 1111]反 = [0000 0000]补

    在计算系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其余各位统一处理;同时,减法也可以按照加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;补码与原码的转换过程几乎是相同的。

转载于:https://www.cnblogs.com/arelive/p/python-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作记录四-etcd与flanneld

######################### etcd用来做flannld的数据中心,记录flannld各主机子网的配置## flannld使各容器实例处于同一子网内,可以相互访问####################### ### 一、etcd安装及使用## 1. 下载编译二进制包git clone https://github.com/coreos…

C#获取刚插入的数据的id

在开发程序中我们经常会遇到两个表或多个表关联同时插入数据的需求。 那么我们刚给主表插入一条数据,接着给副表插入数据时其中一个字段要存储与主表关联的id,那么我们该怎么获取刚插入的那条数据的id呢? insert infor values(,) ;SELECT Ide…

感谢您的提问_感谢您的反馈,我们正在改进的5种方法

感谢您的提问by freeCodeCamp通过freeCodeCamp 感谢您的反馈,我们正在改进的5种方法 (5 Ways We’re Improving Thanks to Your Feedback) This was originally published on our now-defunct blog on September 17, 2015.该文章最初于2015年9月17日发布在我们现已…

sql三个表join_「数据蒋堂」第 31 期:JOIN 简化 – 维度对齐

【数据蒋堂】第 31 期:JOIN 简化 – 维度对齐我们先把上一期中双子表对齐例子的 SQL 写出来:SELECT Orders.id, Orders.customer, A.x, B.y FROM Orders LEFT JOIN (SELECT id,SUM(price) x FROM OrderDetail GROUP BY id ) A ON Orders.idA.id LEFT J…

radius

radius协议使用的是UDP传输协议,UDP协议相对于TCP更快速,无连接的不可靠。radius协议的包格式:0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1-----------…

apt-get常用命令及工作原理

https://blog.csdn.net/mosquito_zm/article/details/63684608转载于:https://www.cnblogs.com/diyunpeng/p/9772866.html

day10_控制文件

---------------------验证互为镜像功能---------------------窗口1cd /oracle/app/oradata/ecomrm control03.ctl 窗口2SQL> startup force;ORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size …

堆叠自编码器中的微调解释_25种深刻漫画中的编码解释

堆叠自编码器中的微调解释by freeCodeCamp通过freeCodeCamp 25种深刻漫画中的编码解释 (Coding Explained in 25 Profound Comics) We asked our open source community to share the comics they found most profoundly described coding, via our news site. Here are their…

linux和mysql重点哪个_重要的MySQL 文档存储知识点扫盲

MySQL 文档存储 可以跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作,直接存储数据。MySQL 可以提供 NoSQL JSON 文档存储Document Store 了,这样开发者保存数据前无需 规范化normalize 数据、创建数据库,也无需在开发之…

python端口扫描工具_Python实现的多线程端口扫描工具分享

# -*- coding: utf-8 -*-__author__ Phtih0nimport threading, socket, sys, cmd, os, Queue#扫描常用端口PortList [21, 22, 23, 25, 80, 135, 137, 139, 445, 1433, 1502, 3306, 3389, 8080, 9015]#得到一个队列def GetQueue(list):PortQueue Queue.Queue(65535)for p in …

Linux系统启动全过程

分为两部分,第一部分是硬件本身需要加载的信息,之后才是加载Linux相关信息,因为有装有双系统的机器嘛 1.计算机加电 2.BIOS开始运行,检测硬件:cpu、内存、硬盘等 3.BIOS读取CMOS存储器中的参数,选择启动设备…

day09_读写分离_Atlas小记

GRANT ALL PRIVILEGES ON *.* TO root% identified by mysql;FLUSH PRIVILEGES;主从库上全做--------------------------------------------------------------------yum install -y gcc*rpm -ivh Atlas-2.2.1.el5.x86_64.rpm 【rpm包直接安装】rpm -ql Atlas 【查看安装路径…

Free Code Camp现在有本地组

by freeCodeCamp通过freeCodeCamp Free Code Camp现在有本地组 (Free Code Camp now has Local Groups) Our open source community was born online. And our campers are adept at using the internet to communicate. Most of this communication is just short text messa…

二十四点游戏python_[求助]关于二十四点游戏python

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼24点纸牌游戏的开发24点是一种老少咸宜的游戏,它的具体玩法如下:给玩家4张牌,每张牌的面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允…

python-3.6.2安装

1、下载python-3.6.2-amd64.exe安装包 官网下载地址:https://www.python.org/ 2、Python安装,双击傻瓜式安装(用英文路径,不要有空格), 特别要注意勾上Add Python 3.6 to PATH(勾选后&#xff0…

Siege压力工具

Siege官方:http://www.joedog.org/ Siege下载:http://www.joedog.org/pub/siege/siege-latest.tar.gz Siege解压并安装:# tar -zxvf siege-latest.tar.gz # cd siege-latest/ #./configure #make #make installSiege使用:# siege -h 查看相关…

递归javascript_JavaScript中的递归

递归javascriptby Kevin Ennis凯文恩尼斯(Kevin Ennis) JavaScript中的递归 (Recursion in JavaScript) I’m just gonna get this out of the way right up front, because people get really angry otherwise:我只是直接解决这个问题,因为否则人们会非常生气&…

python google drive api_Python管理Google Drive文件

背景Google Drive给我们提供了很多管理和共享文件的简便方法,而且还是免费的(当然免费账户有一定存储限制)。但是,对于某些edu用户,Google Drive存储不仅是免费的,而且是无配额限制的。您是否想知道如何从数据科学的角度充分利用这…

Struts2学习---基本配置,action,动态方法调用,action接收参数

首先我们先来直接配置,然后再来讲原理: 第一步:jar包的引入: 我们可以到struts2的官网上下载: http://struts.apache.org/download.cgi#struts2513 然后解压将里面的app文件夹下的示例war文件解压,将里面的…

实现对数组找最大最小数

实现对数组找最大最小数 在用js的过程中我们往往会需要找到一个数组里最大或最小的数, 但是我们不能直接用Math.max(Arr)或Math.min(Arr),因为max()里面不能填数组,只能填连续的数。 那我们该怎么办呢? 一定…