#include<stdio.h>
int main(){
int a=0b11111111;
printf("%d",a);
}
此代码运行出的a的值为255,什么情况才会输出-1?
#include <stdio.h>
#include <math.h>
int convertBinaryToDecimal(long long n);
int main()
{
long long n;
printf("输入一个二进制数: ");
scanf("%lld", &n);
printf("二进制数 %lld 转换为十进制为 %d", n, convertBinaryToDecimal(n));
return 0;
}
int convertBinaryToDecimal(long long n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
int a=0b11111111;改成 int a=-0b00000001;试试。很少有编译器支持用二进制给变量赋值。
参考:
只有长度为一个字节的数据类型才会输出-1 比如 char类型
#include<stdio.h>
int main(){
char a=0b11111111;
printf("%d",a);
}
如有帮助,望采纳!谢谢!