91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-11
  • 語言: C/C++
  • 標簽: booth??C??

資源簡介

用C語言實現的二進制數一位乘運算,BOOTH算法的實現

資源截圖

代碼片段和文件信息

#include
#include
#include

int?main()
{
????int?ijk;
????int?cha;
????int?jw=0;//進位標記符號
????int?cd;//字符串長度
????int?biaoji;
????char?bcs[21]={0}cs[21]={0}jg[41]={0};//賦值為0
????char?*bufenji[41]={0};
????printf(“請輸入:“);
????scanf(“%s?%s“bcscs);
????for(i=0;i????{
????????jg[i]=bcs[i];
????}
????//將小數點全部變成數字??即有兩位符號位
????if(bcs[0]==‘+‘)bcs[2]=‘0‘;//將bcs中的原碼變補碼?jg記錄-x的補碼
????if(bcs[0]==‘-‘)//負數情況
????{
????????bcs[1]=bcs[2]=‘1‘;//符號位為11
????????for(i=strlen(bcs)-1;i>2;i--)//從尾部開始
????????{
????????????if(bcs[i]==‘1‘)
????????????{
????????????????for(i=i-1;i>2;i--)
????????????????{
????????????????????if(bcs[i]==‘0‘)
????????????????????????bcs[i]=‘1‘;//取反
????????????????????else
????????????????????????bcs[i]=‘0‘;
????????????????}
????????????????break;
????????????}

????????}
????}
????if(jg[0]==‘-‘)
????????jg[2]=‘0‘;//-x的補碼
????if(jg[0]==‘+‘)
????{
????????jg[1]=jg[2]=‘1‘;
????????for(i=strlen(jg)-1;i>2;i--)
????????{
????????????if(jg[i]==‘1‘)
????????????{
????????????????for(i=i-1;i>2;i--)//取反操作
????????????????{
????????????????????if(jg[i]==‘0‘)
????????????????????????jg[i]=‘1‘;
????????????????????else
????????????????????????jg[i]=‘0‘;
????????????????}
????????????????break;
????????????}
????????}
????}
????cs[strlen(cs)]=‘0‘;//將b中的原碼變補碼?尾部填0?即為y(n+1)
????if(cs[0]==‘+‘)//正值補碼數值部分不變
????????cs[2]=‘0‘;
????if(cs[0]==‘-‘)//負值操作
????{
????????cs[1]=cs[2]=‘1‘;//符號位改為1?1
????????for(i=strlen(cs)-1;i>2;i--)
????????{
????????????if(cs[i]==‘1‘)
????????????{
????????????????for(i=i-1;i>2;i--)//取反操作
????????????????{
????????????????????if(cs[i]==‘0‘)
????????????????????????cs[i]=‘1‘;
????????????????????else
????????????????????????cs[i]=‘0‘;
????????????????}
????????????????break;
????????????}
????????}
????}
????bufen=(char*)malloc(strlen(bcs));//開辟新空間
????for(i=0;i????????bufen[i]=‘0‘;
????for(i=strlen(cs)-1;i>2;i--)
????{
????????cha=cs[strlen(cs)-1]-cs[strlen(cs)-2];//?y(n+1)-y(n)
????????if(cha==1)//部分積加【x】補碼??右移一位
????????{
????????????for(j=strlen(bcs)-1;j>0;j--)
????????????{
????????????????if(bcs[j]-‘0‘+bufen[j]-‘0‘+jw==3)//1+1?進位為1
????????????????{
????????????????????bufen[j]=‘1‘;
????????????????????jw=1;
????????????????}
????????????????else?if(bcs[j]-‘0‘+bufen[j]-‘0‘+jw==2)//1+0進位為1?或者?0+1進位為1?或者?1+1?進位為0
????????????????{
??????

評論

共有 條評論