C语言正负整数的二进制表示及二进制输出格式
C语言正负整数的二进制表示及二进制输出格式
讲C 语言数据类型时,讲到整数是在计算机的存储单元中按整数的补码形式存放的,这是学生很难理解补码是什么。
其实正整数的补码是此数的二进制形式;
而负整数的补码是按一下三个步骤求的:
(1) 先将此数的绝对值写成二进制形式。
(2) 然后对所有的各二进制位按位取反。(反码)
(3) 再加 1,就得该负整数的补码。
以下是显示整数二进制表示的C/C++程序:
(1) C程序
//程序设计:chuyi
/*使用itoa来转成字符串 */
/* itoa(数字,字符串指针,进制)*/
#include
#include
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
char *__bit(int x,char *str,int len)
{
int i;
for(i=len-1;i>=0;--i,x>>=1)
str[i]='0'+(1&x);
str[len]='\0';