个人哪里存储安全,把私密文件存哪里最安全
把私密文件存哪里最安全脑及网络给我们带来的方便有目共睹,但如果没有掌握相应的安保措施,私密文件一旦泄露,就可能会导致严重的后果。聊天记录、私人文件等这些重要文件...
2024-05-17
把一个带符号的整数转换为一个ASCII字符串。
数字字符的ASCII值有什么特点呢?它们是颠倒顺序排列的;字符”0”的ASCII值加上1等于”1”的ASCII值,以此类推。因此,数字字符的ASCII就等于这个数字加上字符”0”的ASCII值。(注意,字符”0”的ASCII值是一个不等于零的数值,而这个数值代表着字符”0”。)也就是说,只要用数字字符的ASCII值减去字符”0”的ASCII值就能得到该数字的整数表示形式。也许我不知道字符”0”的ASCII值是多少,但是编译器知道,只要写出代码”–‘0’”,编译器就会把它解释为”减去字符串’0’的ASCII值”。反过来,数字加上字符”0”的ASCII值就应该得到与之对应的数字字符(也就是把数字转为字符)了。
#define MAX_DIGITS_INT 10/*整数位数*/
void IntToStr( int num,char str[])
{
int i= 0, j= 0;
int isNeg= 0;
/*整数位数最大为12位,包括负号*/
char temp[MAX_DIGITS_INT+ 2];
if( num<0)
{
num*=-1;
isNeg= 1;
}
do
{
temp[i++]=(num%10)+'0';
num/= 10;
}while(num);
if( isNeg)
temp[i++]='-1';
while(i>0)
str[j++]= temp[--i];
str[j]='\0';
}
将一个Ip地址转换成整形
//接受一个String类型的一个参数,将其转化成一个long类型的
//暂时转化String类型的IP地址
public long ipToLong(String ip){
String[] ips= ip.split("//.");
StringBuffer strip= new StringBuffer();
for(int i=0;i<ips.length;i++){
strip.append(ips[i]);
}
return Long.parseLong(strip.toString());
}
当发生 192.168.12.1和192.168.1.21的时候用上面的那种转换的话,结果是相同的:192168121
所以有下面两种方式:
第一种:
id分为四段,每段不够3位的话,加零如:192.168.12.1和192.168.1.21,结果是:192168012001和192168001021
code:
package com.text.dos;
import org.omg.PortableInterceptor.DISCARDING;
public class Test{
/**
*@param args
*/
public static void main(String[] args){
// TODO自动生成方法存根
String s="192.168.1.12";
long j= doString(s);
System.out.println(j);
}
private static long doString(String idString)
{
long i= 0;
int a1= idString.indexOf(".");
int a2= idString.indexOf(".",a1+1);
int a3= idString.indexOf(".",a2+1);
String s1= idString.substring(0,a1);
String s2= idString.substring(a1+1,a2);
String s3= idString.substring(a2+1, a3);
String s4= idString.substring(a3+1,idString.length());
//System.out.println(s4);
if(s1.length()==1)
s1="00"+s1;
else if(s1.length()==2){
s1="0"+s1;
}
System.out.println(s1);
if(s2.length()==1)
s2="00"+s2;
else if(s2.length()==2){
s2="0"+s2;
}
System.out.println(s2);
if(s3.length()==1)
s3="00"+s3;
else if(s3.length()==2){
s3="0"+s3;
}
if(s4.length()==1)
s4="00"+s4;
else if(s4.length()==2){
s4="0"+s4;
}
System.out.println(s3);
String s= s1+s2+s3+s4;
i= Long.parseLong(s);
return i;
}
}
第二种:
一、应用范围
一般用在登录限制、查找IP所在城市等需求中,windows的ping命令也支持整数形式的IP。
二、关键技术点
将IP地址转化成整数的方法如下:
1、通过String的indexOf方法找出IP字符串中的点"."的位置。
2、根据点的位置,使用String的substring方法把IP字符串分成4段。
3、使用Long的parseLong方法把子段转化成一个3位整数。
4、通过左移位操作(<<)给每一段的数字加权,第一段的权为2的24次方,第二段的权为2的16次方,第三段的权为2的8次方,最后一段的权为1
将整数形式的IP地址转化成字符串的方法如下:
1、将整数值进行右移位操作(>>>),右移24位,右移时高位补0,得到的数字即为第一段IP。
2、通过与操作符(&)将整数值的高8位设为0,再右移16位,得到的数字即为第二段IP。
3、通过与操作符吧整数值的高16位设为0,再右移8位,得到的数字即为第三段IP。
4、通过与操作符吧整数值的高24位设为0,得到的数字即为第四段IP。
三、实例演示
public class IP2Long...{
//将127.0.0.1形式的IP地址转换成十进制整数,这里没有进行任何错误处理
public static long ipToLong(String strIp)...{
long[] ip= new long[4];
//先找到IP地址字符串中.的位置
int position1= strIp.indexOf(".");
int position2= strIp.indexOf(".", position1+ 1);
int position3= strIp.indexOf(".", position2+ 1);
//将每个.之间的字符串转换成整型
ip[0]= Long.parseLong(strIp.substring(0, position1));
ip[1]= Long.parseLong(strIp.substring(position1+1, position2));
ip[2]= Long.parseLong(strIp.substring(position2+1, position3));
ip[3]= Long.parseLong(strIp.substring(position3+1));
return(ip[0]<< 24)+(ip[1]<< 16)+(ip[2]<< 8)+ ip[3];
}
//将十进制整数形式转换成127.0.0.1形式的ip地址
public static String longToIP(long longIp)...{
StringBuffer sb= new StringBuffer("");
//直接右移24位
sb.append(String.valueOf((longIp>>> 24)));
sb.append(".");
//将高8位置0,然后右移16位
sb.append(String.valueOf((longIp& 0x00FFFFFF)>>> 16));
sb.append(".");
//将高16位置0,然后右移8位
sb.append(String.valueOf((longIp& 0x0000FFFF)>>> 8));
sb.append(".");
//将高24位置0
sb.append(String.valueOf((longIp& 0x000000FF)));
return sb.toString();
}
/***//**
*@param args
*/
public static void main(String[] args)...{
String ipStr="192.168.0.1";
long longIp= IP2Long.ipToLong(ipStr);
System.out.println("192.168.0.1的整数形式为:"+ longIp);
System.out.println("整数"+ longIp+"转化成字符串IP地址:"
+ IP2Long.longToIP(longIp));
//ip地址转化成二进制形式输出
System.out.println("192.168.0.1的二进制形式为:"+ Long.toBinaryString(longIp));
}
}
方法:
1、int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型);
2、int.Parse(stringsParameter)是个静态方法,参数类型只支持string类型;
3、Convert.ToInt32()适合将Object类型转换为int型;
4、Convert.ToInt32()和int.Parse()的细微差别:
对于空值(null)的处理不同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
扩展资料:
自动类型转换:
在C语言中,自动类型转换遵循以下规则:
1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
a、若两种类型的字节数不同,转换成字节数高的类型
b、若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
3、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4、char型和short型(在visualc++等环境下)参与运算时,必须先转换成int型。
5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分直接舍去。
参考资料:百度百科-强制类型转换
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 465747283@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
相关文章
把私密文件存哪里最安全脑及网络给我们带来的方便有目共睹,但如果没有掌握相应的安保措施,私密文件一旦泄露,就可能会导致严重的后果。聊天记录、私人文件等这些重要文件...
2024-05-17
国有企业粮食存储可以异地存放吗明确经省政府批准省级储备粮可以省外异地储存。进一步规范省级储备粮的收储、销售和轮换的计划管理。对省级储备粮收储计划、销售计划的下达...
2024-05-17
小米云服务有必要开吗我认为开启手机云服务是非常有必要的。1、信息备份恢复方便,现在的人,对电子设备的依赖性与日俱增,就拿记手机号码来说,之前没有智能手机的时候都...
2024-05-17
一、联想ST510和联想SL700有什么区别联想ST510和联想SL700两款固态硬盘的主要区别有(以联想SL700系列M.22280256GB和联想ST...
2024-05-17
存储器的发展史存储器设备发展1.存储器设备发展之汞延迟线汞延迟线是基于汞在室温时是液体,同时又是导体,每比特数据用机械波的波峰(1)和波谷(0)表示。机械波从汞...
2024-05-17
一、股价与公司业绩之间有什么关系理论上,业绩与股价是挂钩的,股价=每股净利润*市盈率,市盈率就相当于一个参数,如果是10倍,就意味着你这个股价买的,如果业绩不提...
2024-05-17