美文网首页
java基础扫盲(一)字节字符和位

java基础扫盲(一)字节字符和位

作者: OnyWang | 来源:发表于2018-01-12 17:09 被阅读53次

历史问题

大家都知道计算机这东西是洋鬼子搞出来的,他的底层实现是二进制。也就是说,计算机里面,二进制,简简单单的0和1可以表示世间万物,可以创造世间万物。

一生二,二生三,三生万物。

不知道创造者是否参考过我大中华博大精深的文化。

这里说的位就是指的二进制位了,也就是说的0或者1。他们都可以表示一位。英文名就是bit了。

字节

字节其实就是一个单位,我们通过单位知道文件的大小。这就好比你上菜市场卖肉的时候问店家猪肉多少钱一斤一样,在计算机的世界里面,我们经常会问猪肉多少钱一字节。如果你知道一斤猪肉大体上有多大,够炒几个菜。那么你就大概了解一字节的文件大体上有多大,能装的下几个字儿了!
其实,我们平时接触的比较多的是M,K还有G。是吧?
其实,他们都是计量单位。字节的英文表示为byte(为什么我输入byt的时候,搜狗给我提示的避孕套呢?)。他们之间的转化关系如下:

  • 1G=1024M
  • 1M=1024K
  • 1K=1024byte

好了,大家清楚他们之间的关系了吧?我们平时的流量套餐呢?1G?大概就是110241024=1048576KB了。假如,我们平时浏览一篇文章用20k,看一张图片用40K,听一首歌用3M,看一部电影用100M。能用多少流量,大家自己算去吧!
那么,字节和位之间存在关系吗?
当然存在,只要在计算机的世界里面出现的任何东西,都和位存在关系!
一个字节等于8位。就是说8个0和1的组合表示一个字节。
00000000 11111111 都可以表示一个字节。

字符

字符简单了!就是我们平时看到的一切字母、符号、中文、法文、日文等等。c是个字符、中也是个字符。
说到字符呢,就不得不说一下编码格式了。这里只说一下比较常用的编码格式,其他的编码格式,大家可以自行百度理解研究。

  1. ASCII
    洋鬼子最早搞出来的编码格式。该编码下,一个字符需要一个字节表示,也就是说占8位。这样的话有256中0和1的组合方式,可以表示256个不同的字母。对于,英文而言就绰绰有余了。
  2. UNICODE
    显然,洋鬼子在设计ASCII码的时候没有考虑到遥远的东方,存在博大精深的文化。新华字典里面的汉字有多少个?显然256是远远不够的!那平方呢?65535?够了吧?还不够?
    这里就说到一个网络上经常出现的一个问题,UNICODE编码里面,一个汉字占几位的问题。很多老程序员会这么说:“一个汉字占两个字节!”
    在GBK编码里面是2个字节,但是在unicode编码里面是不对的!其实,很多时候,汉字占几个自己完全取决于编码格式。编码格式也不难写,因此对于汉字的编码有多种说法:ubuntu12.04里面一个汉字是三个字节!

它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

如上,unicode编码的描述。
就是说,在unicode编码下,一个汉字可能是2个字节,也可能是3个或者是4个字节。

  1. utf8
    该编码格式我们是不是经常用到呢?
    该编码格式其实是基于unicode。确实,unicode被很多编码格式拿来做基础编码。
    在utf8编码格式下,英文字母占一个字节,和ascii完全相同。
    汉字或者是其他字符占1-4个字节。

char

这里我们说一下java中的char类型。
在java中,char类型占2个字节,16位。
可以采取如下方式为char类型变量赋值:

char a='a';  //任意单个字符,加单引号。

char a='中';//任意单个中文字,加单引号。

char a=111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

注:只能放单个字符。 

相关文章

  • java基础扫盲(一)字节字符和位

    历史问题 大家都知道计算机这东西是洋鬼子搞出来的,他的底层实现是二进制。也就是说,计算机里面,二进制,简简单单的0...

  • 文件编码

    编码:字符转为字节解码:字节转为字符 字符集:JAVA字符使用16位的双字节存储,但是在实际文件存储的数据有各种字...

  • Java IO详解

    1. Java中字节流和字符流 字节(Byte)和字符(Character)的大小: 1 byte = 8bit[...

  • java中的I/O流系统详解

    Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符...

  • Java的IO操作

    Java的文件IO操作: 有两种形式:字节流和字符流,字节流传输的是字节,返回的也是字节,而字符流传输的是字符,返...

  • Java IO和NIO

    Java IO Java IO面向流,按照流中的最小数据单元可以分为字节流和字符流,顾名思义分别以字节和字符作为数...

  • java:字节和字符

    记录并分享下自己学习时的小插曲。 事情起源:java基础太次了,就打算,重新学一遍,再做做题。于是乎就碰见了这么道...

  • Java 字符和字节

    字符:一个人类文字的单位。 字节:一个计算机数据单位。由8个bit组成 字符就是人类看得懂的文字 字节就是计算机看...

  • Java中基础类型分别占用多少字节?

    Java中基础类型分别占用多少字节? “字节”是byte,“位”是bit ;1 byte = 8 bit ; Ja...

  • Java-IO/NIO

    java.io包下包含输入流和输出流,每种流又分为字节流和字符流两类,字节流支持以byte(8位)为单位进行操作,...

网友评论

      本文标题:java基础扫盲(一)字节字符和位

      本文链接:https://www.haomeiwen.com/subject/camfoxtx.html