c语言数据转换问题?高手进

作者&投稿:厍复 (若有异议请与网页底部的电邮联系)
C语言 数据类型转换问题 高手来拜托各位大神~

字符型的ASCⅡ不是算出来的,它是美国标准信息交换码。也是计算机中字符表示的标准。共规定了128个字符对应的7位2进制编码。 如小写字母a对应的码值是97,就是根据小写字母a在ASCⅡ表中对应的二进制编码换算成10进制得到的 先将10进制数的整型15换算成二进制得到1111,按16位整型在机器中的存储方式高8位+低8位的表示就是:00000000 00001111。然后通过查ASCⅡ表就可以知道对应的字符是那一个,我手边没有书,没法查给你。你可以找本编程的书,通常在书的附录中有ASCⅡ表 此外,也有些ASCⅡ表已经换算成10进制的,直接按15这个数值就可以查找到对应的字符量是那个了
麻烦采纳,谢谢!

两个确实结果不同。
LCD_BUFFER属于数组指针,进行加法之后仍是指针。
(unsigned int)(LCD_BUFFER)则是一般的数。
假设LCD_BUFFER=0x0。
这时LCD_BUFFER+1其结果不是0x1,而是0x0+480*2。乘2是因为short的类型占2个字节,480是因为这个数组声明的宽度为480。
而(unsigned int)(LCD_BUFFER)+1则是先将指针转换成普通的数,再进行普通数学运算,所以其结果为0x1。

所以楼主可以试下,如果把b那一行的代码改成如下。
int a,b;
short LCD_BUFFER[272][480];
a = (((unsigned int)(LCD_BUFFER+480*272*2))>>1) + 1;
b = (((unsigned int)(LCD_BUFFER)+480*272*2 * 480 * 2)>>1) + 1;
其中的a和b便是相等的。
我在visual studio 2008上验证通过。

希望对楼主有所帮助。

char *str="111111";
int i=atoi(str);
int *p;
int a[3];
a[0]=i&0xff;
a[1]=(i&0xff00)>>8;
a[2]=(i&0xff0000)>>16;
其实转化成int 的时候在内存中已经是二进制存取了,比如:111111 的内存表示形式为0x0001b207 这时候只需要对相应的移位操作就可以了。。。

char a[] = {0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0};
char b[4];

*(int *)b = atoi(a);

int可不分什么十进制和十六进制,printf的时候你可以自由选择以什么进制显示,都忘了?
与掩码再移位是把数字分段显示的好办法.


关于c语言,数据类型转换的问题,二级c……
数据类型转换有两种:a 强制类型转换,通过函数实现, 如 char c='a'; int i; i=int(a); \/\/ 强制转换,但不会改变a本身的类型。b 自动类型转换,通过编译器自动实现,不同类型的数据在一个表达式中会自动转换为最长的类型:如你定义的char a; int b; float c; double d;计算a*b+c-d...

开发语言中数据不是我们要的数据类型怎么办呢?
1.数据类型的转换:转换我们又人临时转换和永久转换,这个时候就根据项目场景选择。临时需要用的选择临时转换,在当前逻辑中后面的全部都需要改变,这时候选择永久转换来达到我们需求的数据类型。2.程序开发中在某种情况下,某些数据类型对我们没有用,我们需要转换成我们需要的类型,这时候强制转换就用上了!

R语言初步-数据转换-3.select()函数和rename()函数
在R语言的数据转换中,select()和rename()函数扮演着关键角色。select()函数让你灵活地选择列,而rename()则用于重命名列以提升数据的可读性。以下是这两个函数的详细介绍:1. 选择列:select()函数支持多种选择方式。使用A:B格式,可以选择列A和B,包括它们自身;而-(A:B)则排除A和B,仅保留其...

为什么,我QQ语音不能转换成文字?
QQ语音不能转换成文字的原因可能包括网络问题、软件设置、权限限制或语言识别技术限制等。首先,网络问题可能是一个关键因素。在进行语音转文字的过程中,需要稳定的网络连接来传输语音数据并接收转换结果。如果网络不稳定或信号弱,可能会导致转换失败。例如,在语音通话中,如果网络出现波动,可能会导致语音数...

C语言数据类型的转换
让我来说说这个问题吧。一.自动转换 自动转换遵循以下规则:1) 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2) 转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。a.若两种类型的字节数不同,转换成字节数高的类型 b.若...

C语言数据类型有效数字问题
1.这是c语言中的强制类型转化问题。在有不同类型的量参与运算时,一律先强制类型转化成一致的类型再运算。转化规则是以最高级别的类型为基准。由低向高转化。类型的级别从低到高排列依次为:char->int->long int ->float->double 2.因为双精度的数,其有效位比单精度更多,有效位越多,当然计算的...

为什么C语言中字符会自动转变为整型数据?
在C语言中,字符会自动转换为整型数据的原因与C语言的数据类型和类型提升规则有关。C语言中的字符通常表示为字符型,但字符型实际上是整数类型的子类型。以下是一些相关的概念和规则:字符类型(char):在C语言中,字符类型(char)用于表示单个字符。字符在内部存储时通常以ASCII码或其他字符编码的整数值...

C语言将十六进制数据转换为字符串
在C语言编程中,不借助库函数处理十六进制数据转换为字符串是一项常见的任务。本文将通过实例介绍如何实现这一转换,并探讨在嵌入式系统中可能遇到的问题及解决方案。首先,我们有两个测试程序,一个名为hex2str的函数负责将十六进制数据转换为字符串。在初始版本的程序中,存在三个主要问题:频繁的字符串...

C语言数据类型转换的意义?
比如你写表达式 5\/0.5,5 是被识别成整型的,0.5 被识别成浮点型,这两个类型间是不能做运算的,所以发生了自动类型转换,把整型提升为了浮点型再继续运算。学习了类型转换的概念和用法,对你平时写程序排查问题等等都很有帮助的。以后的知识里数据类型转换会出现得更频繁。比如你会遇到 malloc 函数...

C语言字符数据与整型转化的一个小问题
因为计算所有的符号,都是按以0~255对应的ASCII码存储的,所以,要先把c=130转换成二进制,也就是c=130在内存中的状态。130换算成二进制串是"1000 0010",但是,计算机中的数据是以补码存储的,所以这个"1000 0010"是个补码,那么补码是1000 0010的数字是多少?-126!所以输出-126的关键就在于用了...

东宁县13048447013: c语言中不同数据类型的相互转化怎么做? -
豫相复方: 在C语言中,不同数据类型在进行运算时首先要转换成同一类型,一种是自动转换,二是强制转换,如(int)a 将a强制转换为int型 转换原则:箭头是转换方向 char,short->int->unsigned->long,float->double 说这个题之前要接受一个事实:不同计...

东宁县13048447013: 数据交换输出——C语言 -
豫相复方: 第一你没有读懂题意..找出其中最小的数,将它与最前面的数交换后输出这些数.与最前面的数交换也就是a[0]交换. 第二:在找最小的数时候.有点问题.应该是for(i=0;i<n;i++){if(a[i]<min){min=a[i];count=i;}} count 是用来记录最小的数的下标.要和min=a[i]在一个复合语句中. 第二:你的输出格式也有问题. 题上要求:对于每组输入数据,输出交换后的数列,每组输出占一行.要注意输出一组数据后换行哟~要是还AC不过..再提问.

东宁县13048447013: C语言 数值转换问题 -
豫相复方: 思路这样: 1.你把所输入的数字M分别用不同进制转换成10进制的,存一个数组例如A. A[0]存个零,空着用来比较用.A[1]存10进制的 例如:12用3进制转完是5,把5存到A[3],依次类推,36进制的存A[36] 2.要比较的数字N存另一个数组里面例如B.处理方法同A 3.然后比较这两个数组里面的数值有没有相同的.(俩层循环就行了.)有的话,记录下来的迭代值,i和j就是对应的进制值. 这方法有点儿费时,不过容易理解,几个循环下来也就出来结果了.

东宁县13048447013: C语言数据强制转换 -
豫相复方: 程序要多去调试啊,这个很简单的啊 给你个代码参考吧 int main() { int a = -34; //-34是开始的值,你可以设个值 unsigned int b = (unsigned int)0-(unsigned int)a; return 0; } 整理成一般表达式为:int a = originalNumber;//原始值 unsigned int b = (unsigned int)0-(unsigned int)a;//转换后的绝对值

东宁县13048447013: 关于C语言数据类型转换的一个小问题,很简单哦!! -
豫相复方: 数据类型转换有两种:a 强制类型转换,通过函数实现, 如 char c='a'; int i; i=int(a); // 强制转换,但不会改变a本身的类型.b 自动类型转换,通过编译器自动实现,不同类型的数据在一个表达式中会自动转换为最长的类型: 如你定义的char a; ...

东宁县13048447013: C语言数据类型转换问题. -
豫相复方: 你看这个行不?int main() { char ch; char a[10]; int n=0; while((ch=getchar())!='\n') { if(isdigit(ch)) { ungetc(ch,stdin); a[n++]=getchar(); } } a[n]='\0'; puts(a); getch(); return 0; }

东宁县13048447013: C语言数据类型的自动转换和强制转换有什么区别 -
豫相复方: 自动转化、一般都是小的转换成大的、 例如、本来是一个int类型、如果int类型和double类型进行计算、那么、得到的结果就是double类型、而你接收他的值可能是int类型在接受 例如 int a = 10 * 12.55 其中 10 *12.55 的结果会自动转换为double类型 这个时候你的int类型的 a 用来接收、就会出错、强制转换就是、 你把结果强制转换成 int 类型、但是会损失精度、(去除小数点以后的位数)称为一个整数 值得注意的是、自动转换 当中、 小的数据类型转换成大的数据类型没有错、 但是、当大的类型转换成小的类型的时候、就会出错、

东宁县13048447013: C语言数据类型的转换!!规则是什么! -
豫相复方: 题目是选B吧,定义c为float,结果也是float,编译时一般会有警告的,不会那么写,题目只是想考细节,编程时会用强制转换语法,不仅能从低精度强制转换为高精度,也可以根据需要反过来

东宁县13048447013: 高手请进!如何把整形数据转换为字符串(C语言)? -
豫相复方: 功 能:把一整数转换为字符串用 法:char *itoa(int value, char *string, int radix);详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.参数:value: 待转化的整数.radix: ...

东宁县13048447013: C语言相关 数据转换 -
豫相复方: #include "stdio.h" void main(void){ int A=1000,A1,A2; A2=A&0xFF; A1=(A>>8)&0xFF; printf("%d %d\n",A1,A2); } 不过,不知你怎么理解的,这问题只处理了低2字节,可是一个int变量是4字节啊……

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网