1、除法的本质

        除法的本质是减法,也就是一个大的数减去一个小的数,比如:10/2,也就是10-2-2-2-2-2=0,所以商5余0,10/3,也就是10-3-3-3=1,所以商3余1,这也是很常见的方法,但如果引入负数,情况又会有些变化,分成4种总结为2种:

10/2=10-(2*1)-2-2-2-2=0  商5余0,

-10/-2=-10-(-2*1)+2+2+2+2=0 商5余0,

10/-2=10-(-2*-1)-2-2-2-2=0 商-5余0,

-10/2=-10-(2*-1)+2+2+2+2=0 商-5余0,

        通过上面示例,可看出双正双负,得的商是正数,而一正一负,得的商是负数,仔细看10/-2及-10/2这两个例子,拿10/-2举例,10-(-2)=12越来越大了,与实际情况不符,所以要乘于-1即,10-(-2*-1)=8与实际情况相符,所以商是负数正确;对于平衡三进制同样适用,被除数与除数相减后变余数,被除数(余数)与除数同种符号,上1反之上T,这样才能保证两者越来越趋向于0,所以最简单粗暴方法就是,用减法来做加法 ,详情请看:二进制如何做除法?及 平衡三进制四则运算 文章。

2、平衡三进制除法器:减法器版

        平衡三进制的好处就是对称,但也特别的有特点,比如它的减法器,在平衡三进制加法器中它是正向进位的,而减法器它可以负向进位,你没听错是负向进位,当初的我算也不会算,后面得益于我的初中知识,有公式:被减数 + 取反的要减数=  被减数 - 要减数,即12-6=6相当于12+(-6)=6,负负得正了,这确很方便了,只要被减数加上取反的要减数,就可以得到结果,但其实它的减法表也是可以用,不过太反直觉了,并不建议使用,减法器版除法器,原理如下所示:

        可得代码:不想写了


3、平衡三进制除法器:试商版

        说实话,其实这才是最常用的,就像10/2=5,没人会10-2-2-2-2-2=0这样算,但对于平衡三进制来说,不理解它的话,这样是最简单的,用十进制的试商方法,刚开始算了很多次,都无从下手,不是结果不对,就是不知道商是+0-,直到我看到了这文章托马斯·福勒的三元计算机,才知道这还真能算,我差点就觉得它压根算了,但它实现是太规整,如下图所示:

        它算的是280/5=35,过程很清楚,即216+72+0+8=280,中间结果余数是允许有负的,就像上面的-8,这里有三个点要注意,首先是减法太麻烦了,当商上+时,应是写成(+0++0+)-(+0-000),现在变成了(+0++0+)+(-0+000),这就是相减变成加上它的相反数,所以商为+时,出相反数,商为-时,直接照样写;然后就是对位要齐,若对不齐就会导致算错,这里+0-后面,跟了多少个0,每多1个0,那就要多乘3,可出列表格:

平衡三进制数十进制 
+0-000216(8*3*3*3)
+0-0072(8*3*3)
+0-8

还有就就是商要怎么上,就是要余数趋于0,规则如下所示:

被除数(余数)与除数互为相反数,商就上- ;

中间结果移动了两位数字,上0先对齐;

当被除数(余数)与除数的符号,都为正数或负数,商就上+;

感觉学会了,下面来用一下吧,比如10/2和4/2的平衡三进制除法:

没想到吧,10/2可以取18这个数,比10都大,但是结果就是正确的,其它都不行,这是怎么想到的,也就是+-后面加0,即+-为2、+-0为6、+-00为18,商是+--,所以结果是18-6-2=10,也就是10-18+6+2=0;同样的,4/2相当于4-6+2=0,商就是+-,6不6,太难算了。

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

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

相关文章

深入探索WordPress Multisite:构建与管理多站点网络

随着互联网的快速发展,越来越多的企业和个人开始使用内容管理系统来搭建和维护自己的网站。WordPress作为全球最受欢迎的CMS之一,因其强大的功能和灵活性,成为了许多网站管理员的首选平台。而在一些特定需求的场景下,WordPress Mu…

.Net Core 获取文件路径

在 .NET Core 中获取文件路径的方法取决于你要获取的文件的位置和上下文。这里将介绍几种常见的方式来获取文件路径。 1. 获取当前工作目录 你可以使用 Directory.GetCurrentDirectory() 方法来获取当前工作目录的路径: using System; using System.IO; class P…

顺序表整理和单项链表01 day20

二:各个主要函数 一:CreatSeqList SeqList *CreateSeqList(int len); -------------------------------------------------------------/*** brief Create a Seq List object 创建一个顺序表** param n 是顺序表的大小* return SeqList* 指向顺序表的…

电商导购app平台的缓存策略与性能优化方案:架构师的实践经验

电商导购app平台的缓存策略与性能优化方案:架构师的实践经验 大家好,我是阿可,微赚淘客系统及省赚客APP创始人,是个冬天不穿秋裤,天冷也要风度的程序猿! 缓存策略的重要性 在电商导购APP平台中&#xff…

学习C++、QT---12(C++的继承、权限对继承的影响)

每日一言 你的价值,由你自己定义,无需他人评判。 C的继承 直接上案例 继承是什么意思呢,就是我本来这个类我叫他基类、我希望创建我的下一个类有我这之前的类的属性和方法,那么我如果不用继承的话,就需要多写很多一样…

(6)Wireshark的TCP包详解-上篇

1.简介 上一篇中通过介绍和讲解,应该知道要讲解和介绍的内容在哪里了吧,没错就是介绍OSI七层模型的传输层。因为只有它建立主机端到端的连接如:TCP、UDP。 2.TCP是什么? tcp是工作在传输层,也就是网络层上一层的协议。 它是面…

太极八卦罗盘JS绘制

LeaferJS 是一款好用的 Canvas 引擎,通过LeaferJS绘制罗盘案例. https://www.leaferjs.com/ui/guide/ 示例 太极八卦罗盘 直接上代码 <template><div id"LuoPan"></div><div id"info"><p>屏幕宽度: {{ screenWidth }}px<…

Python开源项目月排行 2025年5月

#2025年5月2025年6月1日1scrapy一个开源的、基于 Python 的高性能网络爬虫和数据抓取框架。Scrapy 项目最初由伦敦的网络聚合和电子商务公司 Mydeco 的员工以及乌拉圭蒙得维的亚的网络咨询公司 Insophia 的开发者共同创建。目前&#xff0c;Scrapy 由 Zyte&#xff08;原名 Scr…

Debezium日常分享系列之:在 Kubernetes 中使用 Debezium 的 CDC

Debezium日常分享系列之&#xff1a;在 Kubernetes 中使用 Debezium 的 CDC 架构源数据库创建数据库凭证密钥Debezium 自定义镜像构建并推送镜像Kafka Connect 集群Debezium Postgres 连接器Debezium 创建的 Kafka 主题 Debezium 是一个开源的分布式变更数据捕获 (CDC) 平台。D…

tf serving和torch serve哪个耗时更低

TensorFlow Serving&#xff08;TF Serving&#xff09;和 TorchServe 的耗时对比需结合具体场景&#xff08;如硬件配置、模型类型、优化策略等&#xff09;&#xff0c;以下从多维度分析两者的性能差异及适用场景。 ⏱️ 1. 标准性能基准对比 根据公开压测数据&#xff08;…

Java面试宝典:基础六

133. 二进制小数点位移 答案:C(乘以2) 解析: 原理:二进制小数点右移一位等价于乘以 (2^1)(左移则除以 (2))。示例: 101.1(5.5)右移 → 1011(11)验证:(5.5 \times 2 = 11)说明:位移前:1 0 1 . 1 (值 = 2+2⁰+2⁻ = 5.5) 位移后:1 0 1 1 . (值 = 2+2+2⁰ =…

04-React中绑定this并给函数传参的几种方式

前言绑定 this 的方式一&#xff1a;bind()绑定 this 并给函数传参 的方式二&#xff1a;构造函数里设置 bind()绑定 this 并给函数传参 的方式三&#xff1a;箭头函数【荐】 前言 我们先来看下面这段代码&#xff1a; components/MyComponent.jsx import React from "…

Docker拉取不兼容的镜像解决办法

错误提示如下&#xff1a; WARNING: The requested images platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested295ef35cfefe0dce6904e017e89218695d9a9c092b45496218f4476357be4f9c 这个警告表明你…

android14 未充电状态电量低于15%弹框提示 10%直接关机

上层接收电量变化广播&#xff0c;添加未充电判断&#xff0c;做出弹框或关机动作 SystemUI\src\com\android\systemui\power\PowerUI.java Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();if (PowerManager.ACTION_POWE…

ASP.NET Core 中 Kestrel 的应用及在前后端分离项目中的角色

目录 一、Kestrel 基础&#xff1a;轻量级且高性能的 Web 服务器 二、前后端分离项目架构&#xff1a;Vue、.NET Core API、Nginx 与 Kestrel 2.1 交互流程图 2.2 流程详解 三、Kestrel 在架构中的核心作用 四、launchSettings.json 与 Kestrel 配置的关系及底层机制 4.1…

Kotlin 退出循环总结

文章目录 Kotlin 退出循环总结for循环forEach()嵌套for循环lambda函数inline函数 Kotlin 退出循环总结 for循环 for ((index, value) in list.withIndex()) {if (value "c") {break // 退出循环}println("$index - $value") }// 0 - a // 1 - bfo…

再看C语言

目录 与Java的差异化 编程范式 跨平台 编译过程 包管理 基本类型 内存结构 重点掌握 进制、字节与计算 指针 结构体 关键词 动态内存 模块化 高级特性 动态链接 虚拟内存 打包编译 并发编程 现在需要参与到存储软件开发工作&#xff0c;存储层比较接近OS系统…

机器学习入门 | 训练、推理与其他机器学习活动(预处理、测试与评估)

在训练阶段&#xff0c;训练算法通过优化目标/损失函数在训练数据集上的表现&#xff0c;不断更新模型参数θ。在监督学习场景中&#xff0c;训练数据集由输入-标签对&#xff08;真实输出值&#xff09;组成。目标函数应当奖励模型根据训练输入成功预测真实输出的行为&#xf…

Node.js特训专栏-实战进阶:11. Redis缓存策略与应用场景

&#x1f525; 欢迎来到 Node.js 实战专栏&#xff01;在这里&#xff0c;每一行代码都是解锁高性能应用的钥匙&#xff0c;让我们一起开启 Node.js 的奇妙开发之旅&#xff01; Node.js 特训专栏主页 专栏内容规划详情 Redis 缓存策略与应用场景&#xff1a;从理论到实战的高…

【stm32】HAL库开发——Cube配置基本定时器

目录 一、Cube配置基本定时器 1.定时器CubeMX配置介绍 2.定时器中断控制LED 3.定时器常用函数 4.定时器从模式&#xff08;Reset Mode&#xff09; 5.定时器的从模式&#xff08;Gated Mode&#xff09; 6.定时器的编码器接口 一、Cube配置基本定时器 1.定时器CubeMX配置…