c++中负数存储时,不是简单的将符号位置为1,而是采用补码的形式存储的,负数最高位为符号位,也就是1,其余全部取反,然后再加1。
假如操作系统是32位,-1的二进制存储不是:1000
0000 0000 0001,而是:1111 1111 1111 1110+1即1111 1111 1111 1111。
扩展资料:
C语言面向过程,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。
参考资料来源:百度百科-c语言
二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。
这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。
数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写)
扩展资料:
运算
加法
二进制加法有四种情况: 0+0=0,0+1=1,1+0=1,1+1=10(0 进位为1) 。
乘法
二进制乘法有四种情况: 0×0=0,1×0=0,0×1=0,1×1=1 。
减法
二进制减法有四种情况:0-0=0,1-0=1,1-1=0,0-1=1 。
除法
二进制除法有两种情况(除数只能为1):0÷1=0,1÷1=1
参考资料 百度百科-二进制
你可以用itoa函数很方便的将一个10进制int转变成二进制字符串.
如:
int i;
char s[128];
scanf("%d",&i);
itoa(i, s, 2); /*3个参数,第一个是待转换的数,第二个是存放转换后的字符串,第三个即需要转换的进制*/
printf("该数转换为二进制是: [%s]\n",s);
补充一点,itoa函数的头文件是stdlib.h
2010-02-14
可以将要进行计算的二进制数转换为对应的其它进制数字(10进制,8进制,16进制),再计算。
C语言中二进制的表示方法