`
文章列表
ping和tracert差别   1).ping 命令使用ICMP 协议的echo功能 2).tracert 命令使用到了ICMP协议的超时 3).ping只关心端点,tracert还要关注中间节点,如果中间节点不允许ping,就会显示*,但最终还是可以连通的.   ping(用来检测目标主机的连通) Ping原理发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答,然后打印出回显的报文。 Ping不通一个目的ip地址,并不一定表示这个IP不存在或者没有连接到网络上,因为对方主机有可能做了限制,比如防火墙做了禁ping,因此Ping不通并不是说主机挂了,这点需注 ...
1.数值转换(System Conversion) 1.1 r进制数   数N的r进制可以表示为:  1.2 十进制转换为r进制   十进制数N和其他r进制数的转换是计算机实现计算的基本问题,基解决方案很多,其中一个简单算法基于下列原理:   N = (N div d) * r + N mod r (其中: div为整除运算,mod为求余运算)    问题:如何将非负十进制(Decimal)整数转化为八进制数(Octon

HashCode解惑

hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值 详细了解请 参考 [1]public int hashCode()返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。   但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。  

ARP缓存表

当要访问某个IP,计算机必须知道这个IP的物理地址(MAC地址),这时计算机会发一个广播式的数据包询问:“ipx.x.x.x对应的mac是什么?我是IP y.y.y.y , 我的mac是yy-yy-yy-yy-yy-yy” 整个局域网的机子都收到这个询问,真正拥有这个IP的机子就会回答它:“IP x.x.x.x的mac地址是我这个xx-xx-xx-xx-xx-xx”。 询问的机子会临时保存这个在“IP-MAC对照表”,一段时间不与某IP通讯的话,会删除对应条目。“IP-MAC对照表”中的临时条目就是arp缓存。 另,即使不是正确的机器也可以回答那个询问,回答一个错误的MAC,有 ...

路由表的查看

教你如何读懂路由表, 你能读懂路由表吗?不懂?进来看看吧!   当前的路由: destination 目的网段 mask 子网掩码 interface 到达该目的地的本路由器的出口ip gateway 下一跳路由器入口的ip,路由器通过interface和gateway定义一调 ...
看看以下程序会输出什么: int k=0; for(int i=0;i<100;i++){ k=k++; } System.err.println("K is: "+k);  输出结果竟然为:0 原因:Java的中间变量机制,上述代码的实际执行过程: int tmp=k; k=k+1; k=tmp; 所以无论执行多少循环都只是0.   然而要是在C语言中,上述代码会输出预想的 100.C语言没有这个机制。   教训:不要在单个的表达式中对相同的变量赋值超过一次。

位操作

在不发生截断或者溢出的情况下:                                                        左移(<<)一位相当于乘以2                                                       右移(>>)一位相当于除以2
标准C没有这个类型,byte表示一个字节,对应C的unsigned char,你可以自己按下面的样子定义一个即可: typedef unsigned char byte;  格式输出: %o    八进制 %x   十六进制 接下来写一个利用byte计算二进制数中有多少个1的例子!!!(转换为16进制接收。) #include<iostream> using namespace std; typedef unsigned char byte; //******************************************* int c ...
char s[100]; gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到回车为止  
1.将一个char数组传递给println方法,打印出来的是一个Unicode字符而不是它的数字代码。 char tt='y'; System.out.println(tt); //运行结果: y  2.所有的数组的toString方法返回的值都是诸如“[?*****”的字符串: String[] sar={"hello","world","hahah"}; char[] numbers={'1','2','3'}; long[] nu={1L,2L,3L}; Stri ...

字符数组

      在C语言中,看如下两个式子有何不同? char* p1="hello"; char p2[]="hello";     对于第一个式子:是无需开辟内存空间存储"hello",字符串常量存储在静态区(好像是),p1是一个指针直接指向该区域的这个字符串常量即可。     对于第二个式子:需要专门开辟6个字符的内存区域(最后一位是'\0')以存储"hello"。   2.字符指针当做字符数组使用的办法:   //开辟3个char的空间,最后一个为'\0' char ...

二分查找

要写一个完备的程序属实不易呀。 采用了迭代式和递归式两种方法实现: package com.wjy.renren; public class BinarySearch { private static int tag=-1; public static void main(String args[]){ int[] array={3,6,8,9,12,36,76}; int num=36; binarySearch2(array,num,0,array.length); System.out.println(tag); Syste ...

看看+操作符

System.err.println("2+2"+(2+2)); //运行结果 2+24 System.err.println("2+2"+2+2); //运行结果 2+222  由于在Java中,只有String重载了+操作符。所以以下代码的结果是? System.out.println('a'+'a');  结果应该为:194 原因:‘a’ 是字符型字面常量,因为这两个操作数都不是字符串类型的,所以+操作符执行的是加法而不是字符串连接。   当然了如下代码的运行结果是一样的: char a ...
  char x='X'; int i=89; System.err.println(false?x:89);  看看这个输出多少?   答案:                        Y               char x='X'; int i=89; System.err.println(false?x:i); 这个呢? 答案:                      89 原因:条件表达式的两个操作数同类型的话没什么说的,要是不同类型                 ...
问题: c语言中条件表达式的运算顺序不应该是自左向右吗?为什么a<b?a:c<d?c:d 的结果为1.   解答: C语言的条件表达式就是右结合性,不是左结合,左结合的是数学!这个规则是创造C的人规定的,无法改变! 用数学规则来理解就是a<b?a:(c<d?c:d) 关系运算<的优先级比? :运算的优先级高  !!!    在Java中是一样的,结果为:     1。
Global site tag (gtag.js) - Google Analytics