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小时内删除。
发表评论