杭州IT培训
美国上市IT培训机构
0571-56026878
热门课程
Java开发
UID设计
Web前端
大数据
网络营销
PHP开发
VR/AR
高级电商
产品经理
UED设计
C/C++开发
linux云计算
主办会计
Android
嵌入式
iOS开发
C#/.Net开发
软件测试
Python
更多课程 >
了解达内
联系达内
0571-56026878
首页
达内介绍
培训课程
授课讲师
合作企业
在线试听
联系达内
热门课程:
Java
UID
WEB
PHP
网络营销
软件测试
会计
Linux
C++
VR/AR
UED
嵌入式
Android
IOS
.net
大数据
产品经理
高级电商
Python
杭州达内
>
雇主企业
>
疑难解答
计算机数据表达与编程基础
时间:
2018-11-28 20:23
发布:
编程培训
来源:
编程培训
分享到:
1.3 计算机内部的数据表达
计算机内部数据表达的总原则就是:把一切内容数值化、数字化。这个也是编程时处理数据的基本方式,对于编程理解的越深入,则将越认同该原则。
其实计算机也只能这样,因为计算机内部只能存储0和1两个数字,所以必须把指令、数据、图片、文本等各种各样的内容数字化成0和1进行存储、传输和显示。
1.3.1 整数的表达
整数有正负之分,但是计算机内部只能存储0和1,则计算机内部将符号数字化,用二进制码的最高位代表符号位,规定该位为0代表正,1代表负。这就是符号数字化的规定。
前面介绍过整数在计算机内部都是以二进制的形式保存的。但是为了计算方便,以及简化CPU的结构,所以在存储和运算时都采用补码的形式。
前面介绍的那些直接计算出来的二进制形式,都称作整数的原码。规定正数的原码、反码和补码都是自身。
而对于负数,仔细研究一下其组成格式。以8位机为例,也就是一个数字占计算机中的8位,也就是一个字节,用最高位存储符号位,其它的位存储数值。例如-8的原码是10001000,最高位的1代表负数,后续的7位代表数值。
负数的反码是指符号位不变,其他的位取反,也就是0变1,1变0,则-8的反码是11110111.负数的补码是指在反码的数值位上加1,运算后得到的结果,只计算数值位,不改变符号位。则-8的补码是11111000,该次运算中,低位向高位进行了进位。
规律:补码的补码等于负数的原码。
也就是对负数的补码再求补,则得到的负数的原码。
熟悉整数的表达,对于后续理解数据的区间以及进行强制转换以后得到的数值很有帮助,也是进行位运算的基础。
备注:小数,编程语言中称浮点数,的存储形式和整数不同。
1.3.2 字符的表达
字符指计算机内部单个的符号,如标点符号、英文字母和汉字等等。因为这些字符种类各异,计算机无法直接表达,那么就采用了计算机编程中也常用的方式,对每个字符进行编号,例如规定a字符编号为97,b字符编号为98等等。
由于需要编号的字符很多,就专门规定了一系列字符和编号的对应规则,那么这些对应表就被称作字符集,常见的字符集有ASCII、GB2312、BIG5等。
在计算机内部存储、运算和传输时,都只需要使用该编号即可。
字符集比较完美的解决了字符的存储和传输的问题。
所以字符在程序内部可以参与运算,其实参与运算的就是这个字符的编号,字符集规律是很多字符变换逻辑实现的基础。
备注:字符的显示则通过专门的字符显示码实现。
1.3.3 总结
其实计算机内部所有的东西都是以数字的形式存储的,这里只是希望通过这两种简单的结构,使大家了解将数据数字化的思想,这是编程时常用的思想之一。
Java编程
那些事儿——网络编程基础
Java, JDK, Java编译器, Javac, Java基础
对于初学者,或者没有接触过网络编程的程序员,会觉得网络编程涉及的知识很高深,很难,其实这是一种误解,当你的语法熟悉以后,其实基本的网络编程现在已经被实现的异常简单了。
1.4.1 网络编程是什么?
网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据。
现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。
在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。例如以打电话为例,首先拨号的人类似于客户端,接听电话的人必须保持电话畅通类似于服务器。
连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。
在一些程序中,程序既有客户端功能也有服务器端功能,最常见的软件就是BT、emule这类软件了。
下面来谈一下如何建立连接以及如何发送数据。
1.4.2 IP地址和域名
在现实生活中,如果要打电话则需要知道对应人的电话号码,如果要寄信则需要知道收信人的地址。在网络中也是这样,需要知道一个设备的位置,则需要使用该设备的IP地址,具体的连接过程由硬件实现,程序员不需要过多的关心。
IP地址是一个规定,现在使用的是IPv4,既由4个0-255之间的数字组成,在计算机内部存储时只需要4个字节即可。在计算机中,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的IP地址,在同一个网络内部,IP地址不能相同。IP地址的概念类似于电话号码、身份证这样的概念。
由于IP地址不方便记忆,所以有专门创造了域名(Domain Name)的概念,其实就是给IP取一个字符的名字,例如163.com、等。IP和域名之间存在一定的对应关系。如果把IP地址类比成身份证号的话,那么域名就是你的姓名。
其实在网络中只能使用IP地址进行数据传输,所以在传输以前,需要把域名转换为IP,这个由称作DNS的服务器专门来完成。
所以在网络编程中,可以使用IP或域名来标识网络上的一台设备。
1.4.3 端口的概念
为了在一台设备上可以运行多个程序,人为的设计了端口(Port)的概念,类似的例子是公司内部的分机号码。
规定一个设备有216个,也就是65536个端口,每个端口对应一个唯一的程序。每个网络程序,无论是客户端还是服务器端,都对应一个或多个特定的端口号。由于0-1024之间多被操作系统占用,所以实际编程时一般采用1024以后的端口号。
使用端口号,可以找到一台设备上唯一的一个程序。
所以如果需要和某台计算机建立连接的话,只需要知道IP地址或域名即可,但是如果想和该台计算机上的某个程序交换数据的话,还必须知道该程序使用的端口号。
1.4.4 数据传输方式
知道了如何建立连接,下面就是如何传输数据了,先来看一下数据传输的方式。
在网络上,不管是有线传输还是无线传输,数据传输的方式有两种:
<!——[if !supportLists]——>l <!——[endif]——>TCP(Transfer Control Protocol)
传输控制协议方式,该传输方式是一种稳定可靠的传送方式,类似于显示中的打电话。只需要建立一次连接,就可以多次传输数据。就像电话只需要拨一次号,就可以实现一直通话一样,如果你说的话不清楚,对方会要求你重复,保证传输的数据可靠。
使用该种方式的优点是稳定可靠,缺点是建立连接和维持连接的代价高,传输速度不快。
<!——[if !supportLists]——>l <!——[endif]——>UDP(User Datagram Protocol)
用户数据报协议方式,该传输方式不建立稳定的连接,类似于发短信息。每次发送数据都直接发送。发送多条短信,就需要多次输入对方的号码。该传输方式不可靠,数据有可能收不到,系统只保证尽力发送。
使用该种方式的优点是开销小,传输速度快,缺点是数据有可能会丢失。
在实际的网络编程中,大家可以根据需要选择任何一种传输方式,或组合使用这两种方式实现数据的传递。
1.4.5 协议的概念
协议(Protocol)是网络编程中一个非常重要的概念,指的是传输数据的格式。因为大家在网络中需要传输各种各样的信息,在程序中获得到的都是一组数值,如何阅读这些数值呢,就需要提前规定好这组数据的格式,在客户端按照该格式生成发送数据,服务器端按照该格式阅读该数据,然后在按照一定的格式生成数据反馈给客户端,客户端再按照该格式阅读数据。现实中类似的例子就是电报编码,每个数字都是用特定的数据表达。
一般程序的协议都分成客户端发送的数据格式,以及服务器端反馈的数据格式,客户端和服务器端都遵循该格式生成或处理数据,实现两者之间的复杂数据交换。
1.4.6 小结
网络编程就是使用IP地址,或域名,和端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据,实际编程中建立连接和发送、接收数据在语言级已经实现,做的更多的工作是设计协议,以及编写生成和解析数据的代码罢了,然后把数据转换成逻辑的结构显示或控制逻辑即可。
免责声明:本文由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除
预约申请免费试听课
姓名
电话
获取试听资格
怕钱不够?
就业挣钱后再付学费!
怕学不会?
从入学起,达内定制课程!
担心就业?
达内多家实践企业供你挑选 !
上一篇:
杭州达内教育讲师教你零基础学习大数据
下一篇:
软件测试工程师需要哪些技能
相关推荐
人工智能算法和Python语言的区别
NET开发工具有哪些
ADO数据库编程入门
如何学习高级电商
开班时间
Java
12月28日
立即报名
UID
12月28日
立即报名
WEB
12月28日
立即报名
PHP
12月28日
立即报名
网络营销
12月28日
立即报名
软件测试
12月28日
立即报名
会计
12月28日
立即报名
Linux
12月28日
立即报名
C/C++
12月28日
立即报名
VR/AR
12月28日
立即报名
UED
12月28日
立即报名
嵌入式
12月28日
立即报名
Android
12月28日
立即报名
iOS
12月28日
立即报名
.net
12月28日
立即报名
大数据
12月28日
立即报名
产品经理
12月28日
立即报名
高级电商
12月28日
立即报名
选择城市和中心
北京
达内北京中关村中心
达内北京天坛中心
达内北京广渠门中心
达内北京南锣鼓巷中心
达内北京石景山中心
达内北京潘家园中心
达内北京海淀园中心
达内北京亚运村中心
达内北京魏公村中心
达内北京万寿路中心
达内北京亦庄大学生实训基地
达内北京网络营销中心
达内北京会计中心
黑龙江省
达内哈尔滨哈站中心
达内哈尔滨哈西中心
达内大庆中心
吉林省
达内长春长大中心
达内长春亚泰中心
辽宁省
达内沈阳三好中心
达内沈阳学府中心
达内沈阳奉天中心
达内大连胜利中心
达内大连腾飞中心
内蒙古
达内呼和浩特中心
达内包头中心
天津
达内天津天大中心
达内天津长宏中心
达内天津广开中心
达内天津滨海中心
河北省
达内石家庄先天下中心
达内石家庄中山路中心
达内秦皇岛中心
山西省
达内太原龙城中心
达内太原会计中心
达内太原学府中心
达内太原网络营销中心
达内晋中中心
达内运城中心
陕西省
达内西安交大中心
达内西安高新中心
达内西安和平门中心
达内西安省体中心
山东省
达内济南山大路中心
达内济南趵突泉中心
达内济南会计中心
达内济南大明湖中心
达内青岛山东路中心
达内烟台海港路中心
达内潍坊中心
达内临沂中心
达内青岛CBD中心
达内青岛西海岸中心
达内青岛城阳中心
达内淄博中心
达内济宁中心
河南省
达内郑州文化路中心
达内郑州嵩山路中心
达内郑州金水路中心
达内郑州东风路中心
达内南阳卧龙中心
达内洛阳王城中心
江苏省
达内南京总统府中心
达内南京新街口中心
达内南京软件谷中心
达内南京明故宫中心
达内南京常府街中心
达内苏州南门中心
达内苏州园区中心
达内苏州石路中心
达内无锡宝龙中心
达内无锡恒隆中心
达内徐州中心
安徽省
达内合肥银泰中心
达内合肥农大中心
达内合肥三孝口中心
达内合肥汇金中心
达内芜湖中心
达内蚌埠中心
上海
达内上海徐家汇中心
达内上海浦东中心
达内上海长寿路中心
达内上海外滩中心
达内上海南京路中心
达内上海陆家嘴中心
达内上海人民广场中心
达内上海徐家汇中心(童程童美)
达内上海浦东中心(童程童美)
达内上海长寿路中心(童程童美)
湖北省
达内武汉光谷中心
达内武汉洪山中心(原民大中心)
达内武汉武昌中心
达内武汉鲁广中心
四川省
达内成都钻石中心
达内成都高升桥中心
达内成都锦江中心
达内成都天府中心
达内成都金融街中心
达内绵阳中心
重庆
达内重庆杨家坪中心
达内重庆石桥铺中心
达内重庆江北中心
达内重庆解放碑中心
湖南省
达内长沙侯家塘中心
达内长沙松桂园中心
达内长沙芙蓉路中心
达内长沙河西CBD中心
江西省
达内南昌高新中心
达内南昌人民公园中心
浙江省
达内杭州西湖中心
达内杭州西溪中心
达内杭州黄龙中心
达内杭州创业中心
达内华东大学生实训基地
达内杭州武林门中心
达内杭州下沙中心
达内杭州文教中心
达内宁波中心
达内温州中心
达内金华中心
贵州省
达内贵阳中心
福建省
达内福州金山中心
达内厦门湖滨南中心
达内厦门软件园中心
达内福州鼓楼中心
云南省
达内昆明五一路中心
达内昆明春城路中心
广西省
达内南宁中心
广东省
达内广州五羊中心
达内广州天河北中心
达内广州体育东中心
达内广州岗顶中心
达内广州云计算中心
达内华南大学生实训基地
达内广州CBD中心
达内深圳罗湖中心
达内深圳龙岗中心
达内深圳宝安中心
达内深圳宝安体育馆中心
达内深圳童程童美中心
达内深圳地王中心
达内深圳科技园中心
达内深圳龙华中心
达内深圳汇海中心
达内珠海中心
达内东莞南城中心
达内东莞东城中心
达内佛山中心
达内中山中心
海南省
达内海南中心
台湾
达内台北中心