C语言编程基础char类型转换示例

 更新时间:2022年06月06日 10:27:16   作者:jiangwei0512  
这篇文章主要为大家介绍了C语言编程基础char类型转换示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

代码

如下所示:

#inlcude <stdio.h>

void func1(void)
{
    char a = 0x7F;
    unsigned char b = a;
    unsigned int c = a;

    printf ("a: %d(0x%x)\n", a, a); // a: 127(0x7f)
    printf ("b: %d(0x%x)\n", b, b); // b: 127(0x7f)
    printf ("c: %d(0x%x)\n", c, c); // c: 127(0x7f)
}

void func2(void)
{
    char a = 0x80;
    unsigned char b = a;
    unsigned int c = a;

    printf ("a: %d(0x%x)\n", a, a); // a: -128(0xffffff80)
    printf ("b: %d(0x%x)\n", b, b); // b: 128(0x80)
    printf ("c: %d(0x%x)\n", c, c); // c: -128(0xffffff80)
}

void func3(void)
{
    char a = 0xFF;
    unsigned char b = a;
    unsigned int c = a;

    printf ("a: %d(0x%x)\n", a, a); // a: -1(0xffffffff)
    printf ("b: %d(0x%x)\n", b, b); // 255(0xff)
    printf ("c: %d(0x%x)\n", c, c); // c: -1(0xffffffff)
}

int main(void)
{
    func1();
    func2();
    func3();

    return 0;
}

对应的结果已经放在注释中。

分析

首先需要说明的是printf()函数做格式化时,默认将值看成是32位的,所以示例中的某些char才会显示成了8个字节的。

其实当char往int转换时,会根据最高位的值进行不同的转换,如果是最高位是1,则转换时高24位也都是1,反之则是0,这也是为什么最终打印结果是注释中显示的那样的原因。

以上就是C语言编程基础char类型转换示例的详细内容,更多关于C语言编程char类型转换的资料请关注脚本之家其它相关文章!

相关文章

  • C语言拓展实现Lua sleep函数

    C语言拓展实现Lua sleep函数

    这篇文章主要介绍了C语言拓展实现Lua sleep函数,本文使用C语言写出sleep函数,编译后在Lua中调用,需要的朋友可以参考下
    2015-04-04
  • C语言实现学生信息管理程序

    C语言实现学生信息管理程序

    这篇文章主要为大家详细介绍了C语言实现学生信息管理程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C语言怎么连接两个数组的内容你知道吗

    C语言怎么连接两个数组的内容你知道吗

    这篇文章主要为大家介绍了C语言怎么连接两个数组的内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C++实现单置换密码

    C++实现单置换密码

    这篇文章主要为大家详细介绍了C++实现单置换密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 详解PID控制器原理

    详解PID控制器原理

    什么是 PID?它是一种在编程中使用的基本方法,如果正确调整,可以令人难以置信的有效和准确,PID代表比例积分微分,3个单独的部分连接在一起,虽然有时你不需要三个都使用。例如,您可以改为有P控制,PI控制或PD控制
    2021-06-06
  • C++中平衡二叉搜索树的模拟实现

    C++中平衡二叉搜索树的模拟实现

    二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下,所以本文给大家介绍了C++平衡二叉的搜索树模拟实现方法,需要的朋友可以参考下
    2023-09-09
  • C++深入讲解类与对象之OOP面向对象编程与封装

    C++深入讲解类与对象之OOP面向对象编程与封装

    学习过C语言的小伙伴知道:C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题,接下来让我们详细的了解
    2022-05-05
  • 彻底掌握C语言strcat函数的用法

    彻底掌握C语言strcat函数的用法

    strcat是用来拼接字符串的,它会将参数 src 字符串复制到参数 dest 所指的字符串尾部,本章带你了解它的使用并模拟实现它
    2022-05-05
  • C++课程设计之图书馆管理系统

    C++课程设计之图书馆管理系统

    这篇文章主要为大家详细介绍了C++课程设计之图书馆管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 浅谈C++重载、重写、重定义

    浅谈C++重载、重写、重定义

    下面小编就为大家带来一篇浅谈C++重载、重写、重定义。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论