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

10 篇文章 0 订阅
6 篇文章 0 订阅

占位符列表
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表示负数。

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

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

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

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

 

 

 

 

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sscanf函数是C语言中一个非常常用的函数,它可以将一个字符串按照指定的格式转换成相应的数据类型。在嵌入式开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格式字符串的正确性。格式字符串中的占位符必须与待转换的数据类型对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格式字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格式字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格式字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格式字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格式字符串进行转换。 总之,在使用sscanf函数时一定要注意格式字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值