本文目录一览:
c语言二进制表示
负数在计算机里一般用补码表示:
最高位是符号位,其余位为数字的原码取反+1
假设是8位机系统 (当然现在是32位或是64位机):
xxxx xxxx - 8位
1xxx xxxx - 最高位为符号位,负数为1,正数为0
x000 0001 - 抛开最高位不看,剩下的7位为1的原码。
合成之后:
1000 0001 则是-1的原码表达形式。
接下来对取反(最高位符号位是保持不变):
1111 1110
再加一得到:
1111 1111 - 最终的补码表达形式,既二进制的 -1。
参考:
C语言二进制怎么表示?
c语言中没有二进制的格式输出符号. 可以用itoa函数很方便的将一个10进制int转变成二进制字符串。
c语言中2进制怎么表示?符号是什么?
没有,通常做位运算的时候都是写成16进制的,没见过直接表达成二进制的
c语言中二进制怎么表示
C语言中并没有二进制表示方法
只有16进制 8进制和10进制
一般用16进制和十进制比较多。
要二进制输出 需要自己写函数。
C中如何表示一个数是2进制
数据在内存中以二进制补码形式存放!之所以用二进制存放是因为计算机容易识别二进制数,只有0和1表示,编码译码速度块,存取速度块。
我们熟悉的10进制、8进制、16进制数,表示起来都不是很长,如十进制数20,表示成8进制是24,表示成16进制是14,而表示成二进数(最短的是八位)是00010100。可见,二进制数书写起来比较困难,你想想,你想输入一个数值是20的数,你是想输20、24、14、00010100中的哪一个?显然,如果不是特殊的要求,我想我们都不会选择输入00010100吧。
基于此,C语言没有给你提供输入二进制数的格式控制符,不像10进制、8进制、16进制一样有%d、%o、%x这样的输入控制符。也就是说,你不能直接输入输出二进制数!
但是,C语言同样可以表示二进制数,因为数据在内存中都是以二进制数存储的,你想想,存都存的是二进制,还不能表示二进制数吗?只是数据的存储方式你看不到,但是假如你想看到一个数的二进制数,同样可以简单的实现。
请看程序,它就是把num这个数输出成二进制形式:
#includestdio.h
#include stdlib.h
void main()
{
int num;
char str[33];
printf("请输入整数num: ");
scanf("%d",num);
itoa(num,str,2);
printf("%d的二进制形式是%s\n",num,str);
}