当前位置: 游戏平台 > 互联网科技 > 正文

求原码、补码,反码(C语言源代码卡塔尔国,原码反码

时间:2019-11-09 15:12来源:互联网科技
求原码、补码,反码(C语言源代码卡塔 尔(阿拉伯语:قطر‎,原码反码 #include stdio.h #define N 8 //这里您必要是8位 int main(int argc, const char * argv[]) {     int binary[8];//用于寄存最终收获的

求原码、补码,反码(C语言源代码卡塔 尔(阿拉伯语:قطر‎,原码反码

#include <stdio.h>

#define N 8 //这里您必要是8位

int main(int argc, const char * argv[]) {

    int binary[8];//用于寄存最终收获的补码

    int a=0;//要拍卖的数值

    int a1=0;//保存a的值

    int m=0;//用于存放一时的数值

    printf("请输入要调换来二进制补码的数的值:n");

    scanf("%d",&a);

    a1=a;

    if (a==0) {

        for (int i=0; i<N; i++) {

            binary[i]=0;

        }

    }else if (a<0){//负数部分起先

        binary[0]=1;

        a=-a;

        

        //求原码部分最初

        for (int i=N-1; i>0; i--) {

            binary[i]=a%2;

            a=a/2;

            if (a<1) {

                m=i;

                break;

            }

        }//求源码部分告竣

        printf("%d的原码值为:          ",a1);

        for (int i=0; i<N; i++) {

            printf("%d",binary[i]);

        }

        printf("n");

        for (int i=m; i<N; i++) {//负数取反部分,第壹人符号位不改变。

            if (binary[i]==0) {

                binary[i]=1;

            }

            else binary[i]=0;

        }

 

        binary[N-1]=binary[N-1]+1;

        for (int i=N-1; i>0; i--) {

            if (binary[i]>1) {

                binary[i]=0;

                binary[i-1]=binary[i-1]+1;

                if (binary[i-1]<2) {

                    break;

                }

            }

        }

        //负数部分了结

        

        

    }else{

        binary[0]=0;

        for (int i=N-1; i>0; i--) {

                binary[i]=a%2;

                a=a/2;

            if (a<1) {

                m=i;

                break;

            }

        }

        for (int i=1; i<m; i++) {

            binary[i]=0;

        }

        printf("%d的原码值为:          ",a1);

        for (int i=0; i<N; i++) {

            printf("%d",binary[i]);

        }

        printf("n");

    }

    printf("%d的补码值为:          ",a1);

    for (int i=0; i<N; i++) {

        printf("%d",binary[i]);

    }

    printf("n");

    return 0;

}

 

运转结果截图:

 图片 1

图片 2

#include stdio.h #define N 8 //这里你供给是8位 int main(int argc, const char * argv[]) { int binary[8];//用于...

教室笔记:

亟需提升记念的有
  • 数据类型调换:
    强制类型调换时,数据只转变一遍,并不改变原本的数据类型。
  • 位运算
    ^:异或,相异时为生机勃勃
~:取反

微机是补码存储,原码输出!!!
正数的补码是她本身,负数的补码时原码取反加生机勃勃;
~23:-24
原码:00010111
反码:11101000 (是三个负数的补码卡塔尔
负数的反码(-1卡塔 尔(阿拉伯语:قطر‎:11100111
负数的原码:10011000(-24卡塔尔国
三目运算: a?b:c

  • 运算符等级难题:
    括号成员首先,全部单目第二,乘除余第三,加减第四,位移第五,关系第六,等或不对品级七。。
即明日今后延续

2卡塔 尔(阿拉伯语:قطر‎用空指针作函数调用战败时的重返值
在函数调用成功时,函数再次来到三个照准某一指标的指针;反之,则赶回四个空指针。
3卡塔尔用空指针作警戒值

指针数组和数组指针的界别:

int *p[2];首先声爱他美(Aptamil卡塔尔个数组,数组的要素是int类型;
int (*p)[2];注明了叁个指南针,指向了三个有五个int成分的数组。

typedef int* intPtr;
intPtr p[2];```

typedef int intArray2[2];
intArray2 *p;

* ######程序挂起时,应该怎么办。。
调试程序思想及方法。
应该先检测一下程序的结构,按顺序执行一下函数列表,检测函数是否可行正常运行;程序本身正常完成正常的,**问题可能出现该函数从别的地方得到了一些错误的数据**
* 等于运算符的误用;
* 未初始化的变量
* 变量的隐式类型转换。 
用什么方法找出程序中的错误:
(1)先调试程序中较小的组成部分,然后调试较大的组成部分;
(2)彻底调试好程序的一个组成部分后,怎么调试下一个组成部分;
(3)连续观察程序流(flow)的数据变化;
(4)始终打开编译程序警告选项 并试图消除所有警告;
(5)准确地缩小存在错误的范围。
**从一开始就避免错误的出现**
(1)程序中应有足够的注释
(2)函数应当简洁——如果一个函数很简洁,你就应该多花一点时间去仔细的分析和检测确保准确无误。
(3)程序流应该清晰,避免使用goto语句和其他跳转语句
(4)函数名和变量应具有描述性 
####作业:
要求:用for循环或者while循环实现!

路人1.1.字母金字塔

                   A
                  BBB
                 CCCCC
                DDDDDDD
               EEEEEEEEE
          ....................
   ......................................

ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

编辑:互联网科技 本文来源:求原码、补码,反码(C语言源代码卡塔尔国,原码反码

关键词: