转眼间,距离上一次写博客已过去了10个多月,学业进度也到了大二下学期。
感慨颇多,选择了计算机这个专业,随着对所学课程的了解逐渐深入,愈发觉得经验匮乏。
又开始写博客了,打算把平时计组原理有些难度的习题整理一下,也算是记录下学习历程。
如若有同僚也正在思考这个问题,看完这篇帖子应该会有所帮助。
今天的题是:用C实现原码一位乘法
要求:不能用*,/运算符;不能用除scanf,printf以外的函数。
输出格式:
输出A*B的值,如果乘积为+正,直接输出二进制结果;如果乘积为负,输出负号及二进制结果。
输入样例:
在这里给出一组输入。例如:
34 -4
+35 5
0 0
-987654 1234567
输出样例:
-10001000
10101111
0
-10001101111100101011011111000010100101010
话不多说,见代码
#include<stdio.h>
#include<math.h>
int main(){
int n1,n2;//输入数据n1,n2
scanf("%d %d",&n1,&n2);
if((n1>0&&n2<0)||(n1<0&&n2>0)){
printf("-