标签:
输出格式
1.%b --- 二进制
2.%d --- 十进制
3.%u --- 无符号整数
4.%x --- 十六进制
5.%o --- 八进制
6.%s --- 字符串
使用1:
void printf_use_one()
{
char a=128;
printf("%d", a); //输出结果为-128
}
解释:
1. char的有效范围为-128~127;
2. 128在内存中的存放形式为1000 0000;最高位为1,表示存放的是一个负数;
3. 转化内存中存放的数据,先减1---0111 111;掉符号位了,应该时 1 0111 1111;
4. 符号位不变,其他位取反;变成 1 1000 0000 = -128;
使用2:
void printf_use_two()
{
int a=10;
int x=~10;
printf("%d", x); //输出结果为-11
}
解释:
1. 10的二进制补码表示为:0000 0000 0000 1010
2.~10的二进制补码表示为:1111 1111 1111 0101; 这是一个负数
3. 转化内存中存放的数据: 先减1--- 1111 1111 1111 0100 --- 符号位不变,其他位取反--- 1000 0000 0000 1011(原码)
标签:
原文地址:http://www.cnblogs.com/hj-blog/p/4436874.html