社区
硬件设计
帖子详情
一个计算机系统只存在移位(左移或右移)、加减法指令,如何用C语言实现如下计算
freeskyo
2010-08-13 02:04:04
1/ 一个计算机系统只存在移位(左移或右移)、加减法指令,如何用C语言实现如下计算:
(1) n/8 (2) n/9 (3) n*13
...全文
570
15
打赏
收藏
一个计算机系统只存在移位(左移或右移)、加减法指令,如何用C语言实现如下计算
1/ 一个计算机系统只存在移位(左移或右移)、加减法指令,如何用C语言实现如下计算: (1) n/8 (2) n/9 (3) n*13
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tietao
2010-08-22
打赏
举报
回复
[Quote=引用 14 楼 of123 的回复:]
(1) n/8 ==> n>>3
(2) n/9 ==> for(i=0;n>=9;i++){n-9}; //i 就是商
(3) n*13 ==> n<<4-n-n-n
[/Quote]
高,学习了,
以前只知道,可以没想到是这样的!!
of123
2010-08-19
打赏
举报
回复
(1) n/8 ==> n>>3
(2) n/9 ==> for(i=0;n>=9;i++){n-9}; //i 就是商
(3) n*13 ==> n<<4-n-n-n
freeskyo
2010-08-17
打赏
举报
回复
继续....
有更好的方法的话,我就很快结贴了!
freeskyo
2010-08-17
打赏
举报
回复
[Quote=引用 11 楼 great_bug 的回复:]
至少需要有 移位/比较/加/减 指令,才能实现乘除运算
[/Quote]
没错,都有,我给出答案如下:(不过可能不是最优的)
(1) n/8 ==> n>>3
(2) n/9 ==> n>>3
(3) n*13 ==> n<<3+n+n+n+n+n
Great_Bug
2010-08-17
打赏
举报
回复
至少需要有 移位/比较/加/减 指令,才能实现乘除运算
bluesea87
2010-08-16
打赏
举报
回复
[Quote=引用 6 楼 freeskyo 的回复:]
引用 4 楼 bluesea87 的回复:
c语言中你尽管用除和乘好了,如何处理,编译器会帮你安排好
C语言支持,没错;我是目标系统没有乘除的基础上,想出创造性的方法。
[/Quote]
我觉得这话又问题,假设目标cpu只有一条mov指令,那么相应的工具链编译有乘法的c语言是通不过的
用户 昵称
2010-08-16
打赏
举报
回复
没有乘除就不要说C语言。
dreamjack
2010-08-15
打赏
举报
回复
任何计算机的乘除法实现都是这么来的
dreamjack
2010-08-15
打赏
举报
回复
乘法,左移 求和
除法,右移 求减
fcc250513166
2010-08-14
打赏
举报
回复
同意kacyquan
freeskyo
2010-08-14
打赏
举报
回复
[Quote=引用 4 楼 bluesea87 的回复:]
c语言中你尽管用除和乘好了,如何处理,编译器会帮你安排好
[/Quote]
C语言支持,没错;我是目标系统没有乘除的基础上,想出创造性的方法。
bluesea87
2010-08-13
打赏
举报
回复
c语言中你尽管用除和乘好了,如何处理,编译器会帮你安排好
InsaneCode
2010-08-13
打赏
举报
回复
(3)
int i;
int he;
for (i=0;i<13;i++)
{
he+=n;
}
结果为he;
InsaneCode
2010-08-13
打赏
举报
回复
(2)和1一样。
InsaneCode
2010-08-13
打赏
举报
回复
(1)
int i=0;
int n;
int yushu;
while(n> =7)
{
n-=8;
i++;
if(n<=7)
yushu=n;
}
结果i余yushu;
C语言
移位
实现
加减乘除
###
C语言
移位
实现
加减乘除 #### 概述 在
计算
机科学中,
移位
操作是一种高效且基本的操作方式,常被用于替代传统的算术运算。本文将深入探讨如何利用
C语言
中的
移位
操作来
实现
加减乘除四种基本运算,并通过具体的...
C语言
位运算总结位操作基础基本的位操作符有与、或、异或、取反、
左移
、
右移
这6种,它们的运算规则如下.pdf
5. **取绝对值**:通过与-1的异或及减法操作可以得到
一个
数的绝对值。 6. **高低位交换**:对于32位无符号整数,可以通过位操作
实现
高低16位的交换,例如通过异或和与运算。 掌握这些位运算技巧,不仅可以提高编程...
有关大数的库(
C语言
实现
)
4. **大数的
移位
操作**:包括
左移
(乘以2的n次方)和
右移
(除以2的n次方),可以通过简单的位运算或模拟乘除法
实现
。 5. **大数的
加减法
**:`add_big_numbers`和`subtract_big_numbers`函数,涉及到进位和借位的...
计算
机组成原理
移位
运算[可运行源码]
在
计算
机科学中,
移位
运算是指将数据的所有位向左或向
右移
动指定的位置数。...
移位
运算是一种基础且强大的工具,在现代
计算
机系统
中无处不在。掌握其原理和应用对于深入理解
计算
机组成原理和高效编程至关重要。
C语言
中的逻辑运算符
5.
移位
运算符,包括
左移
()和
右移
(>>)。 6. 关系运算符,用于比较运算,包括小于(<)、小于等于()、大于(>)、大于等于(>=)、等于(==)、不等于(!=)。 7. 按位与(&)、按位异或(^)、按位或(|)运算符,它们用于位运算。 8...
硬件设计
6,168
社区成员
11,288
社区内容
发帖
与我相关
我的任务
硬件设计
硬件/嵌入开发 硬件设计
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 硬件设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章