中⽂怎么编码成计算机,如何将汉字转换成⼆进制编码
各数制之间的转换
我们⽤R表⽰任何数制的基数,讨论各数制之间的转换。
1.R进制数转换为⼗进制数
⼆进制、⼋进制和⼗六进制数转换为等值的⼗进制数,只要把它们⽤多项式表⽰并在⼗进制下进⾏计算,所得的结果就是⼗进制数。
2.⼗进制数转换为R进制数
⼗进制数转换为等值的⼆进制、⼋进制和⼗六进制数,需要对整数部分和⼩数部分分别进⾏转换。其整数部分⽤连续除以基数R取余数的⽅法来完成,⼩数部分⽤连续乘以基数R取整数的⽅法来实现。
基数  基数  基数   基数  基数
⼗进制  10000  1000   100   10    1
⼆进制   16    8    4    2    1
⼋进制  4096   512    64   8    1
⼗六进制 65536  4096   256   16    1
3.⼆进制数与⼋进制数、⼗六进制数的转换
⼆进制数与⼋进制数的转换应以"3位⼆进制数对应1位⼋进制数"%的原则进⾏。同理,因为24=16,则⼆进制数与⼗六进制数的转换应以"4位⼆进制数对应1位⼗六进制数"的原则进⾏。
四、⼆进制数的运算
在计算机中,⼆进制数的运算包括算术运算和逻辑运算。
1.⼆进制数的算术运算
(1)⼆进制数加法
加法原则:逢⼆进⼀
(2)⼆进制数减法
减法原则:借⼀当⼆
(3)⼆进制数乘法
乘法原则:与算术乘法形式相同
(4)⼆进制数除法
除法原则:与算术除法形式相同
2.⼆进制数的逻辑运算
逻辑运算是以⼆进制数为基础的,逻辑变量只有两个,⽤来表⽰逻辑"真"和"假"。
(1)逻辑加法("或"运算)
运算符号:"+"或"∨"
运算规则:0+0=0;0+1=1;1+0=1;1+1=1;
(2)逻辑乘法("与"运算)
运算符号:"×"或"∧"
运算规则:0×0=0;0×1=0;1×0=0;1×1=1;
(3)逻辑"⾮"运算
运算符号:"-"%运算规则:A&-*=0时,A=1
五、数据类型及数据单位
1.数据的两种类型
计算机中的数据可概括分为两⼤类:数值型数据和字符型数据。所有的⾮数值型数据都要经过数字化后才能在计算机中存储和处理。
2.数据单位
在计算机中通常使⽤三个数据单位:位、字节和字。位的概念是:最⼩的存储单位,英⽂名称是bit,常⽤⼩写b或bit表⽰。⽤8位⼆进制数作为表⽰字符和数字的基本单元,
英⽂名称是byte,称为⼀字节。通常⽤⼤"B"表⽰。
1B(字节)=8b(位)
1KB(千字节)=1024B(字节)
1MB(兆字节)=1024KB(千字节)
字长:字长也称为字或计算机字,它是计算机能并⾏处理的⼆进制数的位数。
六、字符编码与汉字编码
1.字符编码
⽬前微型机中普遍采⽤的字符编码是ASCII码。它是⽤七位⼆进制数对127个字符进⾏编码,其中前32个是⼀些不可打印的控制符号。
2.汉字编码及字模信息
汉字有两种编码:国标码与机内码。
国标码是"中华⼈民共和国国家标准信息交换汉字编码",代号为"GB2312-80"。在国标码的字符集中,收集了⼀级汉字3755个,⼆级汉字3008个,图形符号682个,共7445个。⼀个汉字对应⼀个区位码,由四位数字组成,前两位数字为区码(0~94),后两位数字为位码(0~94)。机内码是指汉字在计算机中的编码
汉字的机内码占两个字节,分别称为机内码的⾼位与低位。它们与区位码的关系如下:
机内码⾼位=区码+A0H
机内码低位=位码+A0H
汉字字库是由所有汉字的字模信息构成的。⼀个汉字字模信息占若⼲字节,究竟占多少个字节由汉字的字形决定。
例如,如果⽤16×16点阵表⽰⼀个汉字,则⼀个汉字占16⾏,每⾏有16个点,在存储时⽤两个字节存放⼀⾏上16个点的信息,对应位为"0"表⽰该点为"⽩","1"表⽰该点为"⿊"。因此,⼀个16×16点阵的汉字占32个字节。
---------------------------------------------------------------
描述2进制的数据结构,⽤字符串直观,但是效率低,⽤数组效率⾼,但是不直观。
但是道理相同。
性字转换后的结果:
010********* 010********* 010********* 111011111110 110010010000 010********* 010********* 010********* 010********* 010********* 010********* 000000000000
144位编码,这也不可能的,
性字编码alert asc("性")得到-12076,转化为2进制为-10111100101100 不算正负有14位就够了。
如果⾮要补到144位也因该是⾼位补0。
二进制编码转换function c10to2(x)
'10进制到2进制的转换
dim sign, result
result = ""
'符号
sign = sgn(x)
x = abs(x)
if x = 0 then
c10to2 = 0
exit function
end if
do until x = "0"
result = result & (x mod 2)
x = x \ 2
loop
result = strReverse(result)
if sign = -1 then
c10to2 = "-" & result
else
c10to2 = result
end if
end function
---------------------------------------------------------------另外⼀个⼈的写法:
function c10to2(x)
mysign=sgn(x)
x=abs(x)
DigS=1
do
if x<2^DigS

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。