C语言:int型数据向char型数据的强制类型转换原理
int型数据向char型数据强制转换原理
C语言中int是四个字节,char是1个字节,占字节多的int型向字节少的char型强制类型转换的原理就是字节截断。
转换时系统会自动删除高位的三个字节,只留下低位的一个字节,这就是int型想char型转换时丢失数据的原因。例如数据b是0X1234,为十六进制,在计算机中是这样存储的:
0000 0000 0000 0000 0001 0010 0011 0100
共4个字节。转换成char类型后,前3个字节丢弃,即结果是
0011 0100
共1个字节,对应的十进制是52
转换后的数据也是有迹可循,char型数据的范围是-128~127,你可以把他想象成一个圆盘,最上面是0,向右+1,向左-1,最下面是127和-128相邻。当你将一个大于127的正数转换时,可以理解成从零出发绕圈,最终结果就是停留的格子。
为了验证上述结论,我们可以看下面的这段简单地代码:
// An highlighted block
#include<stdio.h>
int main()
{int x=312;char y=(char)x;printf("%d",y);
}
结果图片:
我们可以看到,原来x的值是312,在强制转换赋给y后,变成了56(312-256).
这是我对类型转换的一点小理解,如果有不当的地方,请在评论区留言。
PS:如果有大佬知道int型怎么向char型不流失数据转换的话,请务必将方法拍在我的脸上(狗头保命)
C语言:int型数据向char型数据的强制类型转换原理相关推荐
- c语言int型变量写入char数组的方法
c语言int型变量写入char数组的方法 #include<stdio.h>int main() {int iMum = 1000000;int iReNum = 0;char cArra ...
- C语言的变量类型(int、short、char、float...)及变量类型转换详解
前言 单片机的基本功能是进行数据处理,而数据在进行处理时需要先存放到单片机的存储器中.所以在编写程序时对变量与常量都要先声明数据类型,以便把不同的数据类型定位到嵌入式处理器的不同存储区中. 具有一定格 ...
- c语言字符型数据是,C语言字符型数据.doc
C语言字符型数据 2.5.1字符常量字符常量是指用一对单引号括起来的一个字符.如'a','9','!'.字符常量中的单引号只起定界作用并不表示字符本身.单引号中的字符不能是单引号(')和反斜杠(\), ...
- c语言中字符加上48是,【2017年整理】C语言字符型数据(4、5).doc
[2017年整理]C语言字符型数据(4.5) 2.5.1字符常量字符常量是指用一对单引号括起来的一个字符.如'a','9','!'.字符常量中的单引号只起定界作用并不表示字符本身.单引号中的字符不能是 ...
- C语言中字符串数据转为整型数据并提取整型数据
方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型. #include<stdio.h> #include<string.h> int main() {cha ...
- Java语言int型与byte型数组的转换
为了在接下来的篇章中讲解用Java实现文件的归档和解归档,需要先了解一下Java中int型与byte型数组之间的相互转换. 首先,我们先来看看int型转换成byte型数组. 我们知道,Java中,一个 ...
- 计算机编程c 语言实型数据,C语言-基础教程-C语言实型数据
C语言-基础教程-C语言实型数据 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 2.4.1 实型常量 实型常量又称浮点常量,是一个十进制表示的符号实数.符号实数的值包括整数部分. ...
- c语言的字符数据与整型数据可以互相赋值,2012年计算机二级C语言字符型数据考点归纳...
第6章 字符型数据考点归纳 6.1 字符常量 有两种形式:一是用单引号括起来的一个单字符,如′a′,′?′,′=′:二是″转义字符″,即以″\″开头的字符序列.常用的转义字符见下表. 字符形式 功 能 ...
- C 语言 int 型乘法溢出问题
2019独角兽企业重金招聘Python工程师标准>>> long l; int a, b; l = a*b; 因为 a*b 的结果仍然以 int 型保存, 所以即使 l 为long, ...
最新文章
- RecyclerView的滚动事件OnScrollListener研究
- 【异或交换原理】按位进行异或操作,实现数的交换
- Nuget 多平台多目标快速自动打包
- Leetcode题库 125.验证回文串(双指针 C实现)
- php system()和exec()差别
- 【leetcode】910. Smallest Range II
- PHPCMS V9爆出多个SQL注入漏洞
- 别翻了,常见的锁策略就在这里了~
- python的collections模块的学习
- camshift实现目标跟踪
- php ajax 同时验证 用户名 密码
- 微博三方登陆-02.微博开放平台注册及使用
- android猴子测试,听话的“猴子”安卓app压力测试
- 安装Centos8设置基础软件仓库时出错
- 牛客网——B 遥远的记忆
- MFC窗体的扩展样式和其值
- 英语词性-句子成分-构词法
- rabbitmq——交换机fanout和direct
- Unity 《愤怒的小鸟》涉及的主要知识
- 30款后台源码。是我见过最全的后台代码。。