零. 概念和结论
1. 数:概念名,指代物体的多少,即物体的量的概念;
2. 值:概念属性,数的值,是数的大小的衡量;
3. 十进制:值的表示,是数值在形式上的表现。形式相对内涵(意义)而言,某种形式表示的符号需要人来解读才有意义。十进制是人类自然而然形成的数值表示形式:
a. 包括十个符号表示十个基本数值:阿拉伯数字:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
b. 使用进位(满十进一)来表示所有自然数: 10,11,12,13,14,15,16,17,18,19,20,21,...;
4. 自然数:Natural number, 人类在进化过程中自然而然用来计数、排序的数字。用现代划分,即为非负整数。十进制也是人类在进化过程中自然而然采用的数值表示形式,十进制的符号可以完整表示自然数;
5. 非自然数:指人类根据自然数和后来的实际需要,引申出来的数值表示形式。非自然数无法仅仅使用十进制的十个基本符号表达。小数需要添加小数点,分数需要添加分数线,负数需要添加负号,无理数需要根号、循环负号、省略号,虚数需要i,等等。
6. 符号:引入负数时,引入符号的概念。分为正负号。在引入负数之前,自然数可以认为是无符号的数字。引入负数之后,自然数被认为是带有负号的数字,0以上的自然数带有正号,0以下的整数带有负号。
7. 编码:使用基本数值符号表示非自然数的形式、方法,也就是不使用正负号、小数点、分数线等;
8. 二进制:使用0,1这两个基本数值符号和“满二进一”的进位规则的数值表示形式;同样,在不考虑符号的情况下,二进制也只是自然数的表示形式。即,无符号二进制数表示的是自然数。
9. 二进制编码:(不考虑浮点数的情况下)使用0,1这两个基本数值符号表示自然数和负整数的编码方式。因为不使用正负号,则需要使用0和1分别表示正号和负号。
原码把符号编码和数值编码分开处理,包括四则运算时也是分开处理。
补码则把符号编码和数值编码统一处理,包括四则运算时也统一处理。
原码和补码因负整数而存在,不考虑符号,则不存在这两个概念,只有二进制数(0,1,满二进一)的概念。

一. 二进制
 
二进制是指以2为基数,满二进一,以0,1为基本数值符号的数值表示形式。二进制是计算机中使用的数值表示形式,参考十进制引入。
二进制首先是一个数值表示形式。数,首先是自然数。四则运算,首先是自然数的四则运算。
即:二进制数值表示形式,首先解决自然数的表示和四则运算。其次,才考虑如何解决小数、分数、无理数、虚数的表示方法和运算方法。
 
二. 无符号数就是自然数
 
无符号二进制数,即是没有引入符号的二进制数,所有的位都是数值的表示,不包含符号。这种形式表示的数值是自然数。
自然数的四则运算:加和乘可以自然进行,结果也可以自然表示,没有问题。减存在不够减的问题,除存在除不尽的问题。这个与进制无关,十进制也存在这样的问题。
在引入符号和负数以前,如小学低年级学习减法和除法,减法需要先比较大小,然后再减;除法的结果则有商和余数两个值。
 
三.有符号数的编码方式
 
不引入符号,则二进制数只有数值部分。引入符号和负数的概念,则需要表达正负号。计算机不如人类,可以直接用笔写正号和负号,或者印刷正号和负号。目前而言,计算机中所有的一切都是使用0和1进行表示,也包括正号和负号。
编码针对有符号数而言,即如何使用二进制数值符号0和1表示符号部分和数值部分。
原码:符号部分和数值部分分开处理
四则运算运算时,也把符号部分和数值部分分开处理。加负数相当于减;减负数相当于加;乘则把符号提取出来单独相乘,再把最终的符号赋给积,负负得正;除的符号亦是如此。
补码:符号部分和数值部分统一处理,即符号部分参与运算。
首先,反码不是独立的编码。其次,补码是可以把符号位带入运算,着实很神奇,这里略去不表。
 
四.计算机中需要几种加减乘除实现
 
这取决于有符号数编码能否实现符号带入运算。
如果有符号数使用原码表示,则每种运算需要两种实现:
把二进制数据全部当成数值部分的无符号数运算,即二进制自然数运算;
把二进制数据当成是符号部分和数值部分编码在一起的原码表示的有符号数运算;
 
如果有符号数使用补码表示,根据Java Integer类的说法,二的补码表示方法,可以实现加减乘统一运算,除不可以。所以加减乘只需要一种实现处理无符号数(不考虑符号的数)和有符号数的运算,而除法则需要分开处理,有两种实现。(再考)

IC-二进制, 自然数, 有符号数的更多相关文章

  1. verilog 有符号数(2转)

    在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合:也可以使用有符号数,即包括0和正负数的集合.在更加复杂的系统中,也许这两种类型的数,我们都会用到. 有符号数通常以2的补码形式 ...

  2. C/C++ byte 转 int 有符号数,转成Int 无符号数

    p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1); min-height: 14p ...

  3. 什么是无符号段整数,什么又是有符号数,(c++与java语言里边的不同)

    c++中:整型数分为有符号数和无符号数两种 unsigned int a;无符号整型变量a,意思是这个数最小值为0,最大值为2的32次方-1,因为一个整型数占四个字节,一个字节8位,共32位 int ...

  4. c语言中,如果将无符号数转换为有符号数

    在使用ti的adc芯片ads1259时,芯片是24为数据格式保存的,其中最高位是符号位,因此可以理解为是有符号数据,但是在嵌入式系统中,没有直接24位的变量,因此使用32的无符号先保存24位的数据. ...

  5. jchdl - GSL实例 - Sub(二的补码实现)

    https://mp.weixin.qq.com/s/10fgjqPt2pRvIJzjDGYgBg   概念辨析   <IC-二进制, 自然数, 有符号数>:https://mp.weix ...

  6. Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?

    前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存 ...

  7. 深入理解计算机系统(2.7)---二进制浮点数,IEEE标准(重要)

    2.6我们进行了二进制整数运算的最后一役,本次LZ将和各位一起进入浮点数的世界,这里没有无符号,没有补码,但是有各种各样的惊奇.倘若你真正的进入了浮点数的世界,一定会发现它原来是这么有意思,而不是像之 ...

  8. 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  9. c的基础 1. 无符号数和补码

    计算机中储存和处理的信息是以二进制信号表示的.单个的位不是是很实用,而将这些位 组合在一起,加上某种解释,即给不同的可能位模式赋予含义,我们就行表示怎样有限集合的元素,即实现各种数据结构.计算机中使用 ...

随机推荐

  1. JAVA设计模式之单例(singleton)

    一.饿汉式 /** * 饿汉式 */public class Singleton01 { private static final Singleton01 instance = new Singlet ...

  2. Go实战面试备忘录

    原文地址:https://blog.likeli.top/posts/面试/go面试备忘录/ 一个小厂的面试,记录一下,答案不对的,请帮忙更正下 go部分 map底层实现 map底层通过哈希表实现 s ...

  3. Web的Cookies,Session,Application

    Cookies:客户端(浏览器)存储信息的地方 Session:服务器的内置对象,可以在这里存储信息.按用户区分,每个客户端有一个特定的SessionID.存储时间按分钟计. Application: ...

  4. python控制台实现打印带颜色的字体

    控制台颜色分类: 数值表示的参数含义: 显示方式: 0(默认值).1(高亮).22(非粗体).4(下划线).24(非下划线). 5(闪烁).25(非闪烁).7(反显).27(非反显)前景色: 30(黑 ...

  5. mysql安装之后需要调的参数

    http://www.mysqlperformanceblog.com/2014/01/28/10-mysql-settings-to-tune-after-installation/ 翻译加深理解. ...

  6. Java基础之数据类型

    一.数据类型 基本数据类型介绍 byte 1字节 char 2字节 short 2字节 int 4字节 long 8字节 float 4字节 double 8字节 以上有Java中八大基本类型的7种, ...

  7. 基于elementUI使用v-model实现经纬度输入的vue组件

    绑定一个 [12.34,-45.67] (东经西经,南纬北纬 正负表示) 形式的经纬度数组,能够按度分秒进行编辑,效果如下所示,点击东经,北纬可切换. 经纬度的 度转度分秒 能够获取度分秒格式数据 C ...

  8. Spring Beans 自动装配 简介

    Beans 自动装配 Spring 容器可以在不使用<constructor-arg>和<property> 元素的情况下自动装配相互协作的 bean 之间的关系,这有助于减少 ...

  9. 解决删除~/Library/Caches/CocoaPods/search_index.json重新pod search还是不起作用

    今天新苹果机安装cocoapods,安装完以后发现怎么pod search 都没有用 命令行提示: swhcxp@iosdevmac ~ % pod search Almofire Setup com ...

  10. 【面试考】【入门】决策树算法ID3,C4.5和CART

    关于决策树的purity的计算方法可以参考: 决策树purity/基尼系数/信息增益 Decision Trees 如果有不懂得可以私信我,我给你讲. ID3 用下面的例子来理解这个算法: 下图为我们 ...