zoukankan      html  css  js  c++  java
  • char的本质

    我们知道,在C/C++语言中,char 也是一种普通的scalable 类型,除了字长之外,它与shortintlong 这些类型没有本质区别,只不过被大家习惯用来表示字符和字符串而已。(或许当年该把这个类型叫做“byte”,然后现在就可以根据实际情况,使用byte short 来把char 通过typedef 定义出来,这样更合适些)于是,使用”%d”或者”%x”打印一个字符,便能得出它的10 进制或16 进制的ASCII 码值;反过来,使用”%c”打印一个整数,便可以看到它所对应的ASCII字符。以下程序段把所有可见字符的ASCII 码对照表打印到屏幕上(这里采用printf,注意”#”与”%X”合用时自动为16 进制数增加”0X”前缀):

    for(int i = 32; i < 127; i++)

    {

    printf("[ %c ]: %3d 0x%#04X\n", i, i, i);

    }

    把占用字节小的类型赋给占用字节大的类型时,会有符号位扩展问题,比如把char赋给int时,应当区别是1扩展还是0扩展。

    示例1.1

    void f(unsigned char v)

    {

        char c = v;

        unsigned char uc = v;

        unsigned int uia = c, uib = uc;

        int i1 = c, i2 = uc;

        printf("----------------\n");

        printf("%%c: %c, %c\n", c, uc);

        printf("%%X: %X, %X\n", c, uc);

        printf("%%u: %u, %u\n", uia, uib);

        printf("%%d: %d, %d\n", i1, i2);

    }

        f(0x80);

        f(0x7F);

    output:

    %c: €,

    %X: FFFFFF80

    %u: 42949671

    %d: -128, 12

    ------------

    %c: , 

    %X: 7F, 7F

    %u: 127, 127

    %d: 127, 127

    原文:

    http://baike.baidu.com/view/1295144.htm

    http://www.cnblogs.com/qytan36/archive/2010/09/27/1836569.html

  • 相关阅读:
    C#特性
    C#继承
    对FileStream的几种属性和方法认识
    C# Parallel用法
    c#发布补丁
    WebApi接收接收日期格式参数时,日期类型(2019-10-08T16:00:00.000Z)后台接收时间少8小时问题
    c# 基于WebApi的快速开发框架FastFramework
    c# webapi结合swagger的使用
    windows服务autofac注入quartz任务
    c# autofac结合WebApi的使用
  • 原文地址:https://www.cnblogs.com/mydomain/p/2772469.html
Copyright © 2011-2022 走看看