码迷,mamicode.com
首页 > 其他好文 > 详细

输出格式与补码

时间:2015-04-18 11:14:37      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

输出格式

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!