首页 > 编程知识 正文

字符数字转为int型,char强转为int

时间:2023-05-03 07:54:32 阅读:34776 作者:4000

字符串“1121”是整数类型1121 # include stdio.h # include string.hvoidchartoint (int * dest,char *src,long len ); intmain(void ) { unsigned char *str='1121 '; int value,str_len; str_len=strlen(str; chartoint(value、str、str_len ); printf(%d(n ),value ); }/*转换后的数值地址、传递的字符串、字符串长度*/voidchartoint(int*dest,char *src,long len ) { int i; int value_temp=0; for(I=0; ilen; I ) value _ temp=value _ temp * 10 (* (srci )-'0); } *dest=value_temp; (/)运行(*/1121个寄存器) 2字节)中保存的数据为int型)0x1121 -? (注)重要的一点是判断高位字节是高位字节还是低位字节是高位字节。

# include stdio.h # define high0# define low1voidchartoint (int *、char *、long、int ); intmain(void ) { unsigned char str [ ]={0x 11,0x 21 }; int value,str_len; str_len=sizeof(str ); chartoint(value,str,str_len,HIGH ); printf(%d(n ),value ); (/)转换后的数字地址、传递的字符串、字节数、高位或低位字节位于高位(/voidchartoint(int*dest、char *src、long len、int highlow ) { int i,j int value_temp=0; if(highlow==high ) ) { j=len-1; for(I=0; ilen; I ) {value_temp|=((* ) srcI ) (0xff ) )8*j ); j----; }else{for(I=0; ilen; I ) {value_temp|=((* ) srcI ) (0xff ) )8*i ); } } *dest=value_temp; (/)执行(/4385加上十六进制的0x1121,转换为十进制确实是4385

! 慢着,别先走,突然想到了一个很简单很方便的方法。

# include stdio.hunioncharint { unsigned char str [2]; 短整型值; (; intmain(void ) { union CharInt I; I.value=0; I.str[1]=0x11; I.str[0]=0x21; printf(%d(n ),I.value; 运行(/) */4385程序真的很简单啊。 使用联合类型转换数据类型可能非常有用和实用。 其原理是因为联合型共享一个内存空间。 但是请注意,它以小端模式存储,低字节对应于低地址。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。