C语言实现原码一位除
具体代码如下,直接运行即可。
#include <stdio.h>
int main()
{int i, a = 0, b = 0, c = 0, flag = 3; // flag相当于指针来指明Q的位置char x[6], y[6];int R[6], Q[6], yb[6], y1[6]; // yb是-y的补码,y1为绝对值yprintf("请输入X(带一位符号位四位数值位的二进制数,如+1011):");scanf("%5s", x); while ((c = getchar()) != '\n' && c != EOF); // 清除缓冲区中的剩余字符printf("请输入Y(带一位符号位四位数值位的二进制数,如-1101):");scanf("%5s", y); // printf("X=%s\n",x);// printf("Y=%s\n",y);y1[0] = 0; // 绝对值y一定是正的,符号位为0for (i = 4; i >= 1; i--){if (y[i] == '1'){ // 将字符型的y变成int型的绝对值yy1[i] = 1;}elsey1[i] = 0;}// printf("y的绝对值y1:");// for (i = 0; i <= 4; i++)// {// printf("%d", y1[i]);// }// printf("\n");if (x[0] == '+'){a = 0;x[0] = '0'; // 符号位计算}else // 这里我怀疑是有点问题,先加个大括号先,出问题再删{ a = 1;x[0] = '1';}if (y[0] == '+'){b = 0;y[0] = '0';}else // 这里我怀疑是有点问题,先加个大括号先,出问题再删{ b = 1;y[0] = '1';}if (a + b == 1) //只有一个1一个0,异号的时候才结果为负{c = 1;}elsec = 0; // c为符号位yb[0] = 1;for (i = 4; i >= 0; i--){ //-y的补码计算if (y1[i] == 1) //!!!我这里把y改成了y1yb[i] = 0; // 取反//我这里不取反试试// yb[i] = 1;elseyb[i] = 1;//我这里不取反试试// yb[i] =0;}// printf("y1取反后的值:");// for (i = 0; i <= 4; i++)// {// printf("%d", yb[i]);// }// printf("\n");yb[4] = yb[4] + 1; // 末尾加一for (i = 4; i > 0; i--){if (yb[i] == 2){ // 满2进一位yb[i] = 0;yb[i - 1] += 1;}if (yb[i] == 3){ // 满3进一位 且留下1yb[i] = 1;yb[i - 1] += 1;}}// printf("-y1的补码yb为:");// for (i = 0; i <= 4; i++)// {// printf("%d", yb[i]);// }// printf("\n");for (i = 4; i >= 0; i--){Q[i] = 0; // 给Q赋初值}R[0] = 0; // 设置余数for (i = 4; i >= 1; i--){ // 给R做初始化if (x[i] == '1')R[i] = 1;elseR[i] = 0;}// printf("R的初始值:"); // 余数符号位为0 数值位为x的值// for (i = 0; i <= 4; i++)// {// printf("%d", R[i]);// }// printf("\n");while (flag >= 1){ // 当flag=1时相当于全部除完if (flag == 1){ // 最后一步不移位 单独提出来for (i = 4; i >= 0; i--){ // 余数R加上-y的补码R[i] += yb[i];if (R[i] == 2){ // 满2进一位R[i] = 0;R[i - 1] += 1;}if (R[i] == 3){ // 满3进一位 且留下1R[i] = 1;R[i - 1] += 1;}}if (R[0] == 1){ // 若符号位为1 说明不够减 再加y恢复余数,不够减Q=0Q[4] = 0;}elseQ[4] = 1;break;}for (i = 4; i >= 0; i--){ // 余数R加上-y的补码R[i] += yb[i];if (R[i] == 2){ // 满2进一位R[i] = 0;R[i - 1] += 1;}if (R[i] == 3){ // 满3进一位 且留下1R[i] = 1;R[i - 1] += 1;}}if (R[0] == 1){ // 若符号位为1 说明不够减 再加y恢复余数,不够减Q=0Q[4] = 0;flag -= 1; // 向左移动一位for (i = 4; i >= 1; i--){R[i] += y1[i];if (R[i] == 2){ // 满2进一位R[i] = 0;R[i - 1] += 1;}if (R[i] == 3){ // 满3进一位 且留下1R[i] = 1;R[i - 1] += 1;}} // 不够减先恢复余数再左移for (i = 0; i <= 3; i++){ // 左移R[i] = R[i + 1];}//!!! 这里应该是逻辑左移的,所以我重新设为0// R[4] = Q[0]; // 将Q的第一个移动给RR[4] = 0 ;for (i = 0; i <= 3; i++){ // 左移Q[i] = Q[i + 1];}} // 恢复后R[0]符号位又变成了0else{ // 够减直接左移Q[4] = 1; // 够减Q为1flag -= 1; // 向左移动一位for (i = 0; i <= 3; i++){ // 左移R[i] = R[i + 1];}//!!! 还是逻辑左移设为0// R[4] = Q[0]; // 将Q的第一个移动给RR[4] = 0;for (i = 0; i <= 3; i++){ // 左移Q[i] = Q[i + 1];}}}printf("商Q的值:");for (i = 0; i <= 4; i++){printf("%d", Q[i]);}printf("\n");printf("余数R的值:0.000");for (i = 0; i <= 4; i++){printf("%d", R[i]);}printf("\n");printf("X/Y=%d.", c);for (i = 1; i <= 4; i++){printf("%d", Q[i]);}printf("\n");return 0;
}
相关文章:
C语言实现原码一位除
具体代码如下,直接运行即可。 #include <stdio.h> int main() {int i, a 0, b 0, c 0, flag 3; // flag相当于指针来指明Q的位置char x[6], y[6];int R[6], Q[6], yb[6], y1[6]; // yb是-y的补码,y1为绝对值yprintf("请输入X(带一位符号位四位数值位…...
three.js点滴yan(整理后)
场景、相机和渲染器 Three.js整个系统主要包含场景Scene、相机Camera和WebGL渲染器WebGLRenderer三大块,其中场景又包含模型和光源。WebGL渲染器的主要作用就是把相机对应场景渲染出来,显示在网页Cnavas画布上。 Three.js源码 Three.js各个构造函数对应…...
VMware安装CentOS最小化开发环境导引
目录 一、概要 二、介绍 三、下载 四、安装 4.1 创建虚拟机 4.2 安装CentOS 五、配置网卡 六、配置本地安装源 七、安装软件 7.1 gcc/g 7.2 C的atomic库 7.3 java 7.4 Cmake 7.5 MariaDB客户端(兼容mysql) 八、用户配置文件.bash_profile…...
服务器端编程/数据库驱动程序/RESTful API:介绍
目录 服务器端编程数据库驱动程序RESTful API 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! 服务器端编程 服务器端编程是一种计…...
Qwt QwtThermo绘制温度计
1.简介 QwtThermo 是一个基于 Qt 框架的类库,用于创建温度计控件。它提供了一些方便的功能来展示和处理温度计相关的数据。 QwtThermo 添加了特定于温度计的功能。 使用 QwtThermo,可以实现以下功能: 设置温度范围:可以通过设置…...
U_boot介绍
系统移植之前的了解的: 首先需要移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核,bootloader 有很多,常用的就是 U-Boot;移植好 U-Boot 以后再移植 Linux 内核,移植完 Linux 内核以后 Linux 还不能…...
Flink -- window(窗口)
1、窗口主要分成三大种: 1、Time Window (时间窗口):固定时间触发一次窗口 a、SlidingEventTimeWindows: 滑动的事件时间窗口 public class Demo1TImeWindow {public static void main(String[] args) throws Exception {/*** 时…...
原语:串并转换器
串并转换器OSERDESE2 可被Select IO IP核调用。 OSERDESE2允许DDR功能 参考: FPGA原语学习与整理第二弹,OSERDESE2串并转换器 - 知乎 (zhihu.com) 正点原子。 ISERDESE2原语和OSERDESE2原语是串并转换器,他的的功能都是实现串行数据和并行…...
没网络也能安装.Net 3.5!如何脱机安装.NET Framework 3.5
.NET框架是由微软制定的一个软件框架。它有助于在Windows上运行控制台、Web或移动应用程序。此有用的工具适用于Windows设备。 如何脱机安装.NET Framework 3.5 如果你拥有Windows 10、8、8.1或7,有时第三方软件可能会导致问题。你可能会在图片中看到这样的问题。 看这张照片…...
JVM运行时数据区-虚拟机栈
目录 一、内存中的栈 二、基本内容 三、优点 四、栈的存储单位 五、栈运行原理 六、栈的内部结构 (一)局部变量表 (二)操作数栈 (三)动态链接 (四)方法返回地址 …...
Java中介者模式
目录 定义 结构 案例 优点 缺点 使用场景 定义 又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。 结构 中介者模式包含以下主要角色: 抽象中介者角…...
前端框架Vue学习 ——(五)前端工程化Vue-cli脚手架
文章目录 Vue-cliVue项目-创建Vue项目-目录结构Vue项目-启动Vue项目-配置端口Vue项目开发流程 Vue-cli 介绍:Vue-cli 是 Vue 官方提供的一个脚手架,用于快速生成一个 Vue 的项目模版 安装 NodeJS安装 Vue-cli npm install -g vue/cliVue项目-创建 图…...
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
根据近日工业和信息化部发布的《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,相信不少要进行IOS平台App备案的朋友遇到了一个问题,就是apple不提供云管理式证书的下载,也就无法获取公钥及证书SHA-1指纹。 已经上架的应用不想重…...
Spring -Spring之依赖注入源码解析
依赖注入底层原理流程图:Spring中Bean的依赖注入原理| ProcessOn免费在线作图,在线流程图,在线思维导图 Spring中到底有几种依赖注入的方式? 首先分两种: 手动注入自动注入 手动注入 在XML中定义Bean时,就是手动注入…...
Spire.Office for .NET 8.10.2 同步更新-Crk
Spire.Office for .NET是 E-iceblue 提供的企业级 Office .NET API 的组合。它包括Spire.Doc、Spire.XLS、Spire.Spreadsheet、Spire.Presentation、Spire.PDF、Spire.DataExport、Spire.OfficeViewer、Spire.PDFViewer、Spire.DocViewer、Spire.Barcode和Spire.Email。Spire.O…...
MFC 基础篇(一)
目录 一.SDK编程 二.为什么要学MFC? 三.MFC能做什么? 四.MFC开发环境搭建 五.MFC项目创建 六.消息映射机制 一.SDK编程 Application Programming Interface 应用程序编程接口。 Software Development Kit 软件开发工具包,一般会包括A…...
Android技术-修改SO导出符号
背景 经常在使用第三方SDK的时候会莫名其妙报错,其中最常见的一种就是SO符号冲突,比如libA.so静态链接了libC.a,而libB.so动态链接了libC.so。这样便会导致符号冲突。又或者在使用不同版本的动态库,也会造成符号冲突。 报错案例 案例1 DEB…...
flutter 打包apk
Flutter项目打包生成APK_flutter打包apk_文阿花的博客-CSDN博客 关于iconData可能出现的错误: flutter build apk 打包报错调试过程 - 掘金 (juejin.cn) 使用命令行:flutter build apk --no-tree-shake-icons...
Halcon如何使用SaperaLT库连接dalsa相机
halcon安装好的时候,没有带SaperaLT的采集库,需要额外在Halcon官网下载此库。 以下是halcon官网下载此库的链接。官网需要注册才可以下载。 https://www.mvtec.com/downloads/interfaces?tx_mvtecproduct_extensiondownloadlist%5Bfilter%5D%5B0%5Dma…...
Vue 嵌套路由 多级路由规则
套娃路由 routes:[{path: /login,component: Login},{path: /user,component: User,children:[{ path: test, component: Test },{ path: test2, component: Test2 },]}]子路由不需要加/ 在父组件 子路由不需要加/ 需要带上父亲的路由路径 <router-link to"user/test…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
