C语言数据类型打印对应的占位符

占位符列表
char                          %c和%hhd
unsigned char                 %c和%hhu
%c对应字符身份,%hhd和%hhu对应数字身份
short                         %hd
unsigned short                %hu
long                          %ld
unsigned long                 %lu
int                           %d
unsigned int                  %u
float                         %f和%g
double                        %lf和%lg
%f和%lf保留小数点后无效的0,%g和%lg不保留
    小数点后无效的0

%nd也可以作为占位符打印整数数字,n是
   一个整数。打印结果一定占n个位置,
   空位置补充空格字符
%-nd打印结果也占n个位置,空位置出现在
   右边
%0nd打印结果也占n个位置,空位置用字符
    ‘0’填充
%n.mf可以用来打印浮点数,打印结果中整个
    数字占n个位置,小数点后面占m个位置

计算机内存包含大量的字节,每个字节可以
    单独使用
在必要的时候可以把相邻的几个字节合并成
    一个更大的存储位置来使用
不同数据类型的区别就体现在它们的存储位置
    所包含的字节个数不同上

每个字节有自己的地址,存储位置的地址是
    它所包含的字节中地址最小的那个字节
    的地址

内存中地址从0开始

sizeof关键字可以用来计算某个数据类型或
    变量所占的字节个数

char(unsigned char)         1个字节
short(unsigned short)       2个字节
int(unsigned int)           4个字节
long(unsigned long)         4个字节
float                       4个字节
double                      8个字节

sizeof关键字中如果对存储位置内容作了
    修改则这种修改不会真正发生

计算机中采用二进制方式表示数字
二进制表示方式中每个数位上或者是0或者
    是1
一个字节分成8个位(bit),每个位可以
    用来存储一个0或者1.
一个数字的二进制表示方式非常适合存储
    在字节中

十进制和二进制只是表示数字的两种不同的
    方法

二进制表示方式转换成十进制表示方式的方法
    二进制数字中每个数位有一个编号,最
    右边的数位编号是0,向左依次递增
    每个数位上的1转换成十进制后的结果是
    2的数位次方
    把二进制表示方式中每个1单独转换,然后
    把转换结果求和

二进制表示方式中两个相邻的1之间有倍数关系,
    左边的1是右边1的两倍

0111 0101 = 2^6 + 2^5 + 2^4 + 2^2 + 2^0
          = 64 + 32 + 16 + 4 + 1
          = 117

十进制表示方式转二进制表示方式的方法
    1.把十进制数字拆分成多个2的整数次方
        之和,把每个拆分结果单独转换
        成二进制,最后把所有转换结果
        合并。

       85 = 64 + 16 + 4 + 1
          = 2^6 + 2^4 + 2^2 + 2^0
          = 0100 0000 + 0001 0000
            + 0000 0100 + 0000 0001
          = 0101 0101

    2.把十进制数字不停除以2,然后把
        所有余数倒着写。
  103        **** ***1
   51        0*** ***1
   25        00** ***1
   12        000* ***0
    6        0000 ***0
    3        0000 0**1
    1        0000 00*1
    0        0000 0000
   
  结果是0110 0111

使用上述两种办法转换得到的二进制表示
    形式叫做原码
计算机中实际存储的二进制表示形式是补码
所有非负数的原码就是补码

把二进制表示形式中从右向左每三个数位分成
    一组,每组用一个0到7之间的数字代替。
    这样转换后得到的叫做数字的八进制表示
    形式。
八进制可以看成是二进制的简写形式

二进制                       八进制
0101 1110    01 011 110      136

程序中可以直接用八进制方式表示数字,必须
    在前边加0
   
使用%o做占位符可以把整数的八进制表示形式
    打印在屏幕上

把二进制中从右向左每四个数位分成一组,每组
    用一个数字代替得到的结果就是数字的
    十六进制表示方式
用英文字母'a'到'f'('A'到'F')表示每组中
    10到15这六个不同的数字
任何字节的内容可以用两个十六进制数位表示
二进制              十六进制
0101 1110           5e

可以在程序中直接使用十六进制方式表示数字,
    必须在前边加上0x
使用%x或%X做占位符可以把数字的十六进制
    表示形式打印在屏幕上
%x打印的英文字母都是小写的,%X打印的
    都是大写的

二进制中没有正负号
二进制加一的计算规则是把从右向左多个连续
    的1变成0,把第一个遇到的0变成1.
负数的二进制可以根据相反正数的二进制
    按位求反后加一得到
用以上方式计算得到的就是二进制补码,可以
    直接记录在字节中
可以采用以上办法根据任何整数的二进制补码
    计算相反数的二进制补码
每个有符号数据类型中最左边数位是1其他数
    位是0代表的是这个数据类型中最小的负数
有符号类型二进制补码的最高位叫做符号位,
    可以根据它计算出数据的符号。符号位
    是0表示非负数,符号位是1表示负数。

整数类型之间互相赋值时会保留二进制样式
    不变,有可能导致十进制结果发生变化。
有符号数据扩充时在前面补符号位

加减乘除和取余操作符(+,-,*,/,%)

,也是一个操作符
,操作符可以把两个表达式合并成一个
合并后表达式的计算结果是后一个表达式
    的结果
,操作符的优先级比赋值操作符低

一条语句中可以多次使用赋值操作符,这时
    优先计算右边的赋值操作符

 

 

 

 

你可能感兴趣的:(c++,内存,linux,linux,unix,c)