C语言正负整数的二进制表示及二进制输出格式
讲C 语言数据类型时,讲到整数是在计算机的存储单元中按整数的补码形式存放的,这是学生很难理解补码是什么。
其实正整数的补码是此数的二进制形式;
而负整数的补码是按一下三个步骤求的:
(1)先将此数的绝对值写成二进制形式。
(2)然后对所有的各二进制位按位取反。(反码)
(3)再加 1,就得该负整数的补码。
以下是显示整数二进制表示的C/C++程序:
(1) C程序
//程序设计:chuyi
/*使用itoa来转成字符串  */
/* itoa(数字,字符串指针,进制)*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
    //int a=7;
    int b=-7;
    char  p[255]; 
    itoa(b,p,2); 
    printf("%s\n", p); 
    //itoa(b,p,2);
    //printf("%s\n", p);
    return 0;
}
(2) C++程序
//程序设计:chuyi
// 补码,负整数取绝对值后写成二进制形式,取反,加1,得对应的负数的补码。
#include<iostream.h>
char *__bit(int x,char *str,int len)
{
    int i;
    for(i=len-1;i>=0;--i,x>>=1)
        str[i]='0'+(1&x);
printf输出格式16
    str[len]='\0';
    return str;
}
void main()
{
    cout<<(~5+1)<<endl;
    cout<<(~3+1)<<endl;
    const int size=16;
    char str[size+1];
百度文库 - 让每个人平等地提升自我    cout<<__bit(5,str,size)<<" <== 5"<<endl;
    cout<<__bit(~5,str,size)<<" <== ~5"<<endl;
    cout<<__bit(~5+1,str,size)<<" <== ~5+1"<<endl;
    cout<<__bit(-5,str,size)<<" <== -5"<<endl<<endl;
    cout<<__bit(3,str,size)<<" <== 3"<<endl;
    cout<<__bit(~3,str,size)<<" <== ~3"<<endl;
    cout<<__bit(~3+1,str,size)<<" <== ~3+1"<<endl;
    cout<<__bit(-3,str,size)<<" <== -3"<<endl;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。