zoukankan      html  css  js  c++  java
  • char, signed char, unsigned char的区别

    以来来说,char 等同于 signed char。但不同于unsigned char。

    二者之间的区别在于能表达的范围:

    char                     [-128, 127]

    unsigned char      [0, 255]

    因为char是8bit的,而一般系统下的int通常都是32bit,所以在只需要小空间的整型变量的时候,常会用char来代替。(比如图像处理中的RGB) 

    这样子的话,定义

            char a = 200;

            unsigned char b = 200;

    二者在内存上都是 [1100 1000]

    但当你printf出来时候,

            a: -56

            b: 200

    这是重点!

    因为对于(signed) char a= 200,要进行符号位拓展。(补码与原码)

    所以[1100 1000]有符号数的原码等于(非符号位减一,取反)[0011 1000] = -56。

  • 相关阅读:
    word-wrap和word-break
    sass编译生成的几个文件
    block settings drupal 8 configuration
    cookie 和 session
    程序员思维
    psr-0 和 psr-4
    eclipse的字符编码问题
    合并代码并上传
    如何部署代码
    301 CACHE
  • 原文地址:https://www.cnblogs.com/funway/p/1978651.html
Copyright © 2011-2022 走看看