美文网首页
signed char类型取值范围计算

signed char类型取值范围计算

作者: 胖一一 | 来源:发表于2019-02-26 21:41 被阅读0次

在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下:

signed char c;

这个字符变量c的取值范围是【-128,127】,是计算出来的呢?

假设字符型变量占用一个字节,也就是8bit。由于是“signed”,也就是有符号的,也就是可以是正数,也可以是负数,那么8bit中的最高位就是表示符号位。符号位是“1”,就表示是负数,符号位是“0”,就表示是正数。先来看看符号位是“1”的情况。

  1. 符号位是“1”时,能表示的范围是【10000000, 11111111】。二进制的“10000000”表示的负数计算方式是将8bit全部取反,变成“01111111”,再加上“1”变成“10000000”,此时将其按照无符号数来计算,其10进制是128,再加上负号就是-128; “11111111” 表示的负数计算方式是将8bit全部取反,变成“00000000”,再加上“1”变成“00000001”,此时将其按照无符号数来计算,其10进制是1,再加上负号就是-1。因此,符号位是“1”时,其取值范围是【-128, -1】;

  2. 符号位是“0”时,能表示的范围是【00000000, 01111111】。二进制的“00000000”其10进制就是0 ,“01111111”其10进制是“2的6次方 + 2的5次方 + 2的4次方 + 2的3次方 + 2的2次方 + 2的1次方 + 2的0次方 ”= “64 + 32 + 16 + 8 + 4 +2 + 1”= 127。因此,符号位是0时,其取值范围是【0, 127】,结合符号位是1的情况,整个signed char的取值范围就是【-128,127】啦!

上述就是计算signed char类型的取值范围的方法。如果要计算unsigned char、signed int、unsigned int类型的取值范围呢?方法是一样的,就留给朋友们自己计算啦!
欢迎关注微信号:C语言编程技术分享

相关文章

  • signed char类型取值范围计算

    在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下: signed ch...

  • 有符号,无符号(转载)

    名称字节长度取值范围bool1false,truechar1-128~127signed char1-128~12...

  • 现代 C++ 字符串编码

    本文更新至 C++20。 字符类型 signed char:有符号 8 位字符类型。 unsigned char:...

  • 第2章 基本类型

    1.算术类型 宽字符和unicode 字符型char/signed char/unsigned charchar ...

  • 现代 C 字符串编码

    本文更新至 C23。 字符类型 signed char:有符号 8 位字符类型。 unsigned char:无符...

  • MYSQL 数据库

    数据类型 日期和时间数据类型 可以加上unsigned关键字,定义成无符号的类型,取值范围翻倍。 char(n)和...

  • 好文分享——为什么char的取值范围为-128到127

    在C语言中, signed char 类型的范围为-128127,每本教科书上也这么写,但是没有哪一本书上(包括老...

  • 字符变量和转义序列

    字符变量 char字符类型:位数 8位 bit使用8个二进制表示一个char空间:一个字节取值范围:-128到12...

  • 数据类型转换

    数据类型转换有两种 1.自动转换 2.强制转换 其中bool不参与转换 不同类型做计算取值为较大的类型 char也...

  • mysql命令

    数值类型:tinyint 有符号范围(signed):-128~127 无符号范围(Unsigned):0~25...

网友评论

      本文标题:signed char类型取值范围计算

      本文链接:https://www.haomeiwen.com/subject/mlttuqtx.html