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…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
