怎样把java int转char数组型数组转存为int型数组?

查看: 1919|回复: 7|
在线时间123 小时经验62 威望0 性别男最后登录注册时间阅读权限20UID212822积分62帖子精华0分享0
EH初级, 积分 62, 距离下一级还需 288 积分
积分排行3000+帖子精华0微积分0
目前很多问题都需要从内存数组中取数,又没有好的办法把内存数组全部放到一个字符串中,如生成内存数组row(1:20)变为7181920
猜你喜欢看
在线时间1256 小时经验7494 威望16 性别男最后登录注册时间阅读权限95UID19946积分10244帖子精华0分享0
积分排行71帖子精华0微积分0
如果是数值,位数小,可以用SUM(...)*10^....解决,
在线时间123 小时经验62 威望0 性别男最后登录注册时间阅读权限20UID212822积分62帖子精华0分享0
EH初级, 积分 62, 距离下一级还需 288 积分
积分排行3000+帖子精华0微积分0
以下是引用lws在 12:06:30的发言:如果是数值,位数小,可以用SUM(...)*10^....解决,&位数有点大,用此方法不行,已经试过了
在线时间123 小时经验62 威望0 性别男最后登录注册时间阅读权限20UID212822积分62帖子精华0分享0
EH初级, 积分 62, 距离下一级还需 288 积分
积分排行3000+帖子精华0微积分0
能否利用字符串连接函数,concatenate
在线时间224 小时经验5477 威望23 性别男最后登录注册时间阅读权限95UID15531积分7677帖子精华2分享0
积分排行107帖子精华2微积分0
以下是引用xue1981在 11:58:07的发言:目前很多问题都需要从内存数组中取数,又没有好的办法把内存数组全部放到一个字符串中,如生成内存数组row(1:20)变为7181920&&&&&&& 把row(1:20)变为字符的用途是什么?&&&&&&& 每个人在学习EXCEL时都会遇到这样和那样的问题,喜欢动脑的人会自己想办法,像楼主这样一定是在解决一个问题时,自己设计了这样一个环节--把row(1:20)变为字符。但是在EXCEL中解决这个问题很复杂,且不通用。如果说勉强能把row(1:20)变为字符的话,那么把row(1:500)变成字符串几乎是不可能的。说这些话的目的是想告诉楼主不防把你的原始问题拿上了,或许可以用别的方法解决你的问题,毕竟:all roads lead to Rome.
宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。
在线时间1377 小时经验8166 威望4 性别男最后登录注册时间阅读权限95UID205666积分9816帖子精华1分享0
积分排行78帖子精华1微积分0
concatenate不支持连接内存数组要连接内存数组的话要么用自定义函数
在线时间5 小时经验427 威望0 性别男最后登录注册时间阅读权限30UID131065积分427帖子精华0分享0
EH中级, 积分 427, 距离下一级还需 673 积分
积分排行2674帖子精华0微积分0
楼主这个思路是由提取数字,字符等引过来的吗?目前还没有发现有个函数可以达到该功能
成功源自坚持
在线时间123 小时经验62 威望0 性别男最后登录注册时间阅读权限20UID212822积分62帖子精华0分享0
EH初级, 积分 62, 距离下一级还需 288 积分
积分排行3000+帖子精华0微积分0
是一个测试题,原想用row(1:20)^1000(row(1:20)),然后sum一下,再把不需要的0替换为空即可,没想到实现不了,数据超出sum的计算了,而且10位置的0替换也有问题,看来这个思路是不行了
积分≥4700即可申请
金牌优秀会员
金牌优秀会员奖章No.1
优秀会员奖章No.1
优秀会员奖章No.2
优秀会员奖章No.3
优秀会员奖章No.4
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&您还未登陆,请登录后操作!
怎样把char型数组转换为LPCTSTR类型?
如果不能直接转的话
你可以试下这样:
char a[50];
(LPCTSTR)(LPTSTR)a;
希望能给你帮助!!
大家还关注
,这几天突然发现打开后不能显示内容,原来也出现过类似的情况,重装系统后才解决,请问这是为什么?如何解决?">请高手帮忙 我的电脑安装了<<中国大百科...【要做什么】
申请一个char类型的数组,要将两个int型变量的&#20540;按二进制方式放进去,并能正确读取出来。
(运行环境:64位CentOS,sizeof(int)=4)
这里的做法就是,通过memcpy,将int型变量的首地址作为src buffer,char数组作为dst buffer,每个int型变量占据buffer的4个字节。
#include &stdio.h&
#include &string.h&
#define BUFFER_SIZE
int main(int argc, char * argv[]) {
char buffer[BUFFER_SIZE] = {0};
int input1 = 0, input2 = 0, output1 = 0, output2 = 0;
printf(&size of int: %d\n&, sizeof(int));
printf(&Please input two integers\n&);
scanf(&%d&, &input1);
scanf(&%d&, &input2);
printf(&The input integers are : %d %d\n&, input1, input2);
memcpy(buffer, &input1, sizeof(int));
memcpy(buffer + sizeof(int), &input2, sizeof(int));
printf(&Buffer:\n&);
for (int i = 0; i & BUFFER_SIZE; ++i) {
printf(&0x%02x &, buffer[i]);
printf(&\n&);
memcpy(&output1, buffer, sizeof(int));
memcpy(&output2, buffer + sizeof(int), sizeof(int));
printf(&The output integers retrieved from buffer: %d %d\n&, output1, output2);
【执行结果】
size of int: 4
Please input two integers
The input integers are : 000
0xffffffa0 0xffffff86 0x01 0x00 0x40 0x0d 0x03 0x00 0x00 0x00
The output integers retrieved from buffer: 000
size of int: 4
Please input two integers
The input integers are : 000
0x40 0x0d 0x03 0x00 0xffffffa0 0xffffff86 0x01 0x00 0x00 0x00
The output integers retrieved from buffer: 000
size of int: 4
Please input two integers
The input integers are : 0
(2 ^ 31 - 1)
0x00 0x00 0x00 0x00 0xffffffff 0xffffffff 0xffffffff 0x7f 0x00 0x00
The output integers retrieved from buffer: 0
可见,在64位CentOS环境下,一个int型变量占4个字节,程序中的两个int型变量刚好依次占据了buffer数组的前8个字节。每个int型变量,低字节在前,高字节在后,符号位在第四个字节的最高位bit。
不同语言、不同机器间通过buffer来存取int型&#20540;,要注意大头、小头的区别,必要时要做大小头转换操作。
注意:千万不要用下面的方法
【错误的做法】
#include &stdio.h&
#define BUFFER_SIZE
int main(int argc, char * argv[]) {
char buffer[BUFFER_SIZE] = {0};
int input = 0, output = 0;
printf(&size of int: %d\n&, sizeof(int));
printf(&Please input an integer\n&);
scanf(&%d&, &input);
printf(&The input integer is : %d\n&, input);
snprintf(buffer, BUFFER_SIZE, &%d&, input);
printf(&Buffer:\n&);
for (int i = 0; i & BUFFER_SIZE; ++i) {
printf(&0x%02x &, buffer[i]);
printf(&\n&);
sscanf(buffer, &%d&, &output);
printf(&The output integer retrieved from buffer: %d\n&, output);
}即,通过snprintf()向buffer中存,通过sscanf()从buffer中取。
【错在哪里】
错就错在,snprintf(buffer, BUFFER_SIZE, &%d&, input) 实际上是把input这个整型&#20540;作为一个字符串存放到buffer中,而不是作为二进制的整型&#20540;存放。比如input的&#20540;是1234, 那么snprintf(buffer, BUFFER_SIZE, &%d&, input) 实际上就是把 '1', '2', '3', '4' 这个4个字符依次存放到buffer中,和整数&#2 完全是两码事!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:537996次
积分:7469
积分:7469
排名:第1041名
原创:147篇
转载:512篇
评论:97条
(3)(3)(6)(2)(13)(7)(14)(14)(18)(16)(32)(29)(14)(25)(22)(24)(10)(23)(27)(21)(21)(21)(28)(33)(51)(20)(29)(33)(26)(31)(2)(3)(10)(2)(3)(6)(11)(5)【求教】char汉字数组怎么转换为int?_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:288,300贴子:
【求教】char汉字数组怎么转换为int?收藏
wstring型的汉字转换成int型,会是20000+的一个数。但是char型的只能转换成两个负数。怎么才能转换成整个汉字的20000+的数字呢
想不到有人跟我一样无聊啊,干过同样的事,嘎嘎默认的char最高位是符号位,你转的话,自然是负数,你用&运算试着接受下?手机无力啊,帮你顶一下
谢谢2L,不过似乎不行啊,为什么这个问题无法解决么?大概是因为ASCII需要转到UNICODE码,然而WIN API 里面可以转换,我是在一个手机平台上开发,所以没有那样的子程序,想要用算法实现,不会啊。。。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或当前位置: >
> 怎样把储存在数组中的char转换成int型常量,并且值不变我用gets()命令输入44保存在cha
怎样把储存在数组中的char转换成int型常量,并且值不变我用gets()命令输入44保存在cha
ibluewind & at
怎样把储存在数组中的char转换成int型常量,并且值不变我用gets()命令输入44保存在char str3[]里面然后我怎么才能把44这个值从str3里面提取出来呢?for( i=0;i&strlen(str3);i++){eng+=(int)*(str3+i)*pow(10,(strlen(str3)-i-1));}我这么提结果不对 都变成572了52*10+52=572
atoi()吧,自己算嘛'4'的ascii码是52来的,一般要 '4'-'0'运算下才是整数4ibmsun1 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-}

我要回帖

更多关于 把char型转为int型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信