C语言进阶--有符号与无符号

数据类型的最高位用于标识数据的符号

-最高位为1,表明这个数为负数

-最高位为0,表明这个数为正数

*在计算机内部用补码表示有符号数

  -正数的补码就是正数本身

  -负数的补码为负数的绝对值各位取反后加1

*在计算机内部用源码表示无符号数

  -无符号数默认为正数

  -无符号数没有符号位

C语言中变量默认为有符号的类型

unsigned关键字声明变量为无符号类型,只有整数类型能声明unsigned变量

 

小结:

  有符号数用补码表示

    -正数的符号位为0

    -负数的符号位为1

  无符号数用原码表示

    -无符号数没有符号位

    -无符号数只用于表示正数

  unsigned只能修饰整数类型的变量

    当无符号数与有符号数混合计算时,会将有符号数转换为无符号数后再进行计算,结果为无符号数

posted @ 2023-02-19 18:48  ys_nana  阅读(74)  评论(0)    收藏  举报