举例并说明从为什么计算机是二进制角度如何进行二进制数据四则运算的

&>&程序员二进制计算器 v1.36
程序员二进制计算器 v1.36
上传大小:204KB
专为程序员打造的计算器,二进制运算强大,支持64位。
采用表达式驱动,输入表达式便即时显示结果,抛弃传统计算器繁琐的按钮,表达式可粘贴或回调重复使用。
支持二进制串直接运算,如0b1101 & 0b1。
支持与、或、非、异或、移位(循环、逻辑、算术),直接读写二进制位,指定位段读、写、置1、清0、反转。
二进制数据表达方式多样,数据可以K、M、G等单位为后缀。
支持类C语言库函数调用。
结果可以各种进制、各种单位输出。
运算结果可存放在变量中。
内置常用生活函数。
总之,此计算器相当于解释执行的C语言表达式,但用起来更方便、更高效。
使用前请仔细阅读窗口内的帮助,便可成为开发工作中的好帮手。
[程序员二进制计算器 v1.36
在底部框中输入要计算的表达式,会即时显示计算结果,当无结果时说明表达式输入有误。
按回车键保存该次输入、清空输入框,并显示详细结果,包括可能有的错误信息。
在底部框中按键盘上、下箭头,可以调出历史输入。
当光标在结果框内时,按回车或TAB键可使光标跳至输入框。
即时计算。
便捷的历史回调、复制、粘贴功能。
支持64位整型运算,整数有效范围为 -4775808 至 4774784。
三 数的表示
1-整型数表示法
如何表示二、八、十六进制整数:
(1)二进制数
以0b或0B开头,后面的0、1数字之间可以用空格分隔。
0b1001 = 9
= 0x96 = 150
0B% = 150% = 1.5
(2)八进制数
027 + 7 = 23 + 7 = 30
(3)十六进制数
以0x或0X开头:
-0XabEF * 2 = -44015 * 2 = -88030
2-浮点数表示法
(1)小数点前后的省略表示
.14 = 0.14
(2)用科学计数法表示浮点数
3e+2 = 300
3e-2 = 0.03
3.e2 = 300
3.e+2 = 300
3.14e-2 = 0.0314
.14e+2 = 14
3-字符型表示法
支持字符常量,字符型自动转换为整型(值为该字符的ASCII码),支持C/C++转义字符。
如何得到字符的ASCII码:
'a' + 3 = 100
'a' - 'A' = 32
'\&' = '&' = 34
= '?' = 63
4-量词后缀表示
一个数的后面,可以跟有倍率运算符,表示该数乘以相应的倍数,例如:
2w = 20000 (2万)
3% = 0.03 (百分之3)
详见“倍率运算”部分。
三 运算结果的输出格式
1-指定方法
[格式前缀]
表达式前面可带有“格式前缀”(可选的),用来指定运算结果的输出格式。
“格式前缀”与C/C++的printf函数基本相同,但不支持%s或%S。
当省略格式前缀时,默认按%g方式输出。此时对较小的数按原样输出,较大的数按科学计数法输出。
2-整型的输出格式
当按二、八、十六进制输出时,是按其补码形式输出,最高位是符号位(正数为0、负数为1)。
所以此法可得到一个负数的补码表示。
(1)按二进制输出 %b或%B
%b等价与%B。
%b 12 = 0b1100
%b 0xffffffff = 0b11 11
(2)按八进制输出 %o或%O
%o等价与%O。
%o 10 = 012
(3)按十进制输出 %d
对于整型值,默认按十进制输出,此时%d可省略。
(4)按十六进制输出 %x或%X
用%x时,字母abcdef输出为小写,用%X时,字母abcdef输出为大写。
%x 31 = 0x1f
%X 31 = 0X1F
(5)输出前的类型转换
对于浮点型值,用以上4种格式时,会先取整,再输出,因此它们可起到对结果取整的作用。
%d - = -12345
3-浮点型的输出格式
(1)按精简方式输出 %g
%g是默认的输出格式(可省略),此时不输出无意义的0,当数较大时自动按科学计数法输出。
%g 314 = 314
%g 3.14000 = 3.14
%g 3.14 * 2 = 6.28
%g 1234567 = 1.2
(2)按全部位数输出 %f
%f输出全部位,包括多余的0:
%f 3.14 * 2 = 6.280000
(3)如何指定小数点后保留位数 %m.nf
格式:%m.nf
其中,m和n都是整数,m指定总位数,n指定小数点后保留几位,如果m或n不足,则按实际位数输出。
例1:指定小数点后保留2位,其余位四舍五入:
%.2f 3.14159 = 3.14
例2:指定全部5位,且小数点后保留3位,其余位四舍五入:
%5.3f 3.14159 = 3.142
4-字符型的输出格式 %c或%C
如何得到ASCII值对应的字符(ASCII值转换为字符):
用%c,使结果(仅支持整型值)按字符形式输出即可。
%c 65 = 'A'
%C 100-3 = 'a'
5-智能大小输出格式
用于将一个较大或较小的、不易读的数,自动转换为易读的单位输出。
(1)以K、M、G、T、P、E为单位输出 %sz
%sz对结果按1024为单位换算,用于快速计算磁盘文件的大小(sz是size的简写):
当结果&1K时,原样输出,例如:
%sz 123 = 123.000000
当结果&=1K且&1M时,以K为单位输出,例如:
= 120.563271K
当结果&=1M且&1G时,以M为单位输出,例如:
= 512.000000M
当结果&=1G且&1T时,以G为单位输出,例如:
%sz 0x = 4.000000G
当结果&=1T且&1P时,以T为单位输出,例如:
%sz 98 = 28.572619T
当结果&=1P且&1E时,以P为单位输出,例如:
%sz 00000 = 8.881784P
当结果&=1E时,以E为单位输出,例如:
= 8.673617E
(2)以W(万)、Y(亿)、WY(万亿)、YY(亿亿)、WYY(万亿亿)、YYY(亿亿亿)为单位输出 %num
%num对结果以万、亿等为单位输出,用于便捷得到一个大数的值,格式符合中国人的习惯:
当结果&1万时,原样输出,例如:
%num 8844.43 = 8844.43
(珠穆朗玛峰海拔,单位米)
当结果&=1万且&1亿时,以万为单位输出,例如:
%num 384400 = 38.44W
(地球到月亮的平均距离,单位公里)
当结果&=1亿且&1万亿时,以亿为单位输出,例如:
= 2.99792Y
(光在真空中的速度,单位米)
当结果&=1万亿且&1亿亿时,以万亿为单位输出,例如:
已知光速每秒约三十万公里,求一光年约等于多少公里:
%num 30w * 60 * 60 * 24 * 365 = 9.4608WY
(w是后缀运算符,表示前值乘以1万)
当结果&=1亿亿且&1万亿亿时,以亿亿为单位输出,例如:
国际象棋第1格放1粒米,以后每格放前一格2倍的米,一共需要多少粒米:
%num 2**64 = 1844.67YY
当结果&=1万亿亿且&1亿亿亿时,以万亿亿为单位输出,例如:
已知银河系直径为10万光年、光速每秒约三十万公里,求银河系直径约多少米:
%num 30w * 1000 * 60 * 60 * 24 * 365 * 10w = 9.4608WYY
当结果&=1亿亿亿时,以亿亿亿为单位输出,例如:
围棋盘第1格放1粒米,以后每格放前一格2倍的米,一共需要多少粒米:
%num 2**(18*18) = 3.4YYY
(3)以kilo(千)、mil(百万)、bil(十亿)、tril(万亿)为单位输出 %val
%val对结果按1000为倍率单位输出,用于便捷得到一个大数的值:
当结果&1千时,原样输出,例如:
%val 314 = 314
当结果&=1千且&1百万时,以千为单位输出,例如:
%val 11034 = 11.034kilo
(马里亚纳海沟深度,单位米)
当结果&=1百万且&十亿时,以百万为单位输出,例如:
%val 1392000 = 1.392mil
(太阳平均直径,单位公里)
= 149.598mil
(地球到太阳的平均距离,单位公里)
当结果&=十亿且&1万亿时,以十亿为单位输出,例如:
= 1.35382bil
(2012年中国人口数量)
当结果&=1万亿时,以万亿为单位输出,例如:
%val 519322y = 51.9322tril
(2012年国内生产总值,y是后缀运算符,表示前值乘以1亿)
6-固定比例输出格式
(1)按百分比输出 %2
%2将结果按百分比格式输出,例如:
对150种食品进行抽查,仅105种合格,合格率是多少:
%2 105/150 = 70%
(2)按万分比输出 %4
%4将结果按万分比格式输出,例如:
%4 0.00314 = 31.4%%
四 运算符与函数
1-运算符与分类
所有运算符,一律不区分大小写。
(1)一元运算符
只有1个操作数的运算符。
如果操作数是一个常数,它不需要用括号括起,并且与运算符之间不需要空格分隔,如:
sqr2 = 1.41421
当操作数是表达式时,需要用括号括起,以划分优先级:
sqr(1 + 2) = 1.73205
当操作数是一个内置常量时,它与运算符之间要有空格分隔:
cos pi = -1
对少数一元运算符,按书写习惯放在了操作数的后面,如阶乘!和百分比%
(2)二元运算符
需要2个操作数的运算符,如+ - * /。
(3)三元运算符
需要3个操作数的运算符,如条件运算符 ?: 。
2-内置函数
调用格式:函数名(参数1, 参数2, ...)
其中,所有函数名不区分大小写。
函数名后是用一对括号括起的参数列表,各参数间用逗号分隔。
每个参数可以是一个数值,也可以是复杂表达式。
参数个数必须符合该函数的定义,部分函数支持无穷多个参数(sum, ave, max, min)。
整个函数调用又是个表达式(值为函数的返回值),又可以参与构成其它表达式。
五 基本运算
1-四则运算
除数不能为0。
3 / 2 = 1.5
(5)求余 mod
除数不能为0,支持对浮点数求余。
5 mod 3 = 2
5.2 mod 3.1 = 2.1
6.28 mod 1.5 = 0.28
2-等比运算
格式为 a : b = c : ?
整个表达式的值为“使等式成立的问号处”的值。这里冒号的含义等于除号。
例子:商场里100元的衣服,打折后卖75元, 则另一件150元的衣服,同样打折后卖多少? 写出表达式 100:75=150:?,结果为112.5
(1)下取整 floor
返回不大于x的最大整数:
floor2.8 = 2
floor-2.8 = -3
(2)上取整 ceil
返回不小于x的最小整数:
ceil2.8 = 3
ceil-2.8 = -2
4-求绝对值 abs
abs-3.14 = 3.14
abs(3 - 5) = 2
5-求阶乘 !
操作数不能小于0,或大于100。
(3!)! = 6! = 720
6-倍率运算
一个表达式的后面,可以跟有倍率运算符,表示该表达式的值乘以相应的倍数。
此法在表示一个大数或特定数时,可以减少书写量。
(1)存储单位后缀运算符
4k = (480/120)k = 4*1024 = 4096
2m = (2k)k = 2* = 2097152
4g = (2+2)g = 4*24 =
1t = 24*1024 = 6
1p = 24* = 2624
1e = 24*24 = 6847000
(2)数量后缀运算符一
2w = 20000
1wy = (1w)y = 10000y = 1e+012
1yy = (1y)y = 1e+016
1wyy = ( (1w) y )y = 1e+020
(万亿亿)
1yyy = ( (1y) y )y = 1e+024
(亿亿亿)
(3)数量后缀运算符二
11.034kilo = 11.034 * 1000 = 11034
1.392mil = 1.392 * 100w = 1392000
1.35382bil = 1.35382 * 10y =
51.9322tril = 51.9322wy = 5.1
(4)比率后缀运算符 % %%
求百分比 %
(500%)% = 5% = 0.05
500% mod 3 = 5 mod 3 = 2
求万分比 %%
12345%% = (12345%)% = 123.45% = 1.2345
7-幂运算、指数运算
(1)求平方根 sqr
sqr2 = 1.41421
sqr(1 + 2) = 1.73205
(2)求X的Y次方 **
幂运算,支持浮点数:
4 ** 3 = 4 * 4 * 4 = 64
2.5 ** 1.5 = 3.95285
(3)求e的x次方 exp
exp1.5 = e ** 1.5 = 4.48169
8-对数运算
(1)求以2为底的对数 lg
lg2 = 1, lg(2 * 2 * 2) = 3
(2)求以10为底的对数 ln
ln(10 * 10) = 2
(3)求以e为底的对数 log
log(e * e) = 2
-3.14 * -(1+2) = -3.14 * -3 = 9.42
5--3 = 5 - (-3) = 5 + 3 = 8
5--(-3) = 5 - (-(-3)) = 5 - 3 = 2
六 二进制运算
0b1111 & 0b1001 = 15 & 9 = 0b1001 = 9
0b1100 | 0b0011 = 12 | 3 = 0b1111 = 15
3-位取反 ~
~( -2 ) = ~ 0b11 11
= 1 (32位版本)
~( -2 ) = ~ 0b11 11 11 11 11 1110 = 1 (64位版本)
0b1111 ^ 0b1001 = 15 ^ 9 = 0b0110 = 6
5-移位运算
(1)左移 &&
0b0001 && 2 = 1 && 2 = 0b0100 = 4
(2)右移 &&
0b1100 && 2 = 12 && 2 = 0b0011 = 3
注:这里是采用逻辑右移还是算术右移,由系统决定。
如果确定做逻辑右移,请用下面的rshl运算符;确定做算术右移,请用下面的rsha运算符。
(3)循环左移 rol
格式:data
功能:返回整型值data循环左移n位后的结果。
例子:%x 0x rol 2 = 0x2 (32位版本)
%x 0x0000 rol 2 = 0x2 (64位版本)
(4)循环右移 ror
格式:data
功能:返回整型值data逻辑循环右移n位后的结果。
例子:%x 0xf ror 8 = 0x0f000000 (32位版本)
%x 0xf ror 8 = 0x0f00 (64位版本)
(5)逻辑右移 rshl
格式:data
功能:无论当前系统采用何种形式的右移,返回整型值data逻辑右移n位后的结果。
逻辑右移是指,当右移n位时,高n位全补0(不考虑符号位)。
例子:%x 0xf0000000 rshl 4 = 0x0f000000
(6)算术右移 rsha
格式:data
功能:无论当前系统采用何种形式的右移,返回整型值data算术右移n位后的结果。
算术右移是指,如果符号位为1,则右移n位时,高n位全补1,否则全补0。
例子:%x 0x rsha 8 = 0xff800000 (32位版本)
%x 0x rsha 4 = 0x (32位版本)
%x 0x0000 rsha 8 = 0xff00 (64位版本)
%x 0x0000 rsha 4 = 0x000
(64位版本)
6-二进制运算函数
(1)读二进位函数 rb
格式:rb(data, start, length)
功能:对整型值data,从低位的start位开始(位数从0开始计),连续取出其高位的length位的值,返回该值。
例子:%b rb(0b, 4, 2) = 0b10
(2)写二进位函数 wb
格式:wb(data, start, length, value)
功能:对整型值data,将其中start位开始(位数从0开始计)、其后连续的的length位的值改写为value,返回修改后的data值。
例子:%b wb(0b, 4, 4, 0b1111) = 0b
(3)指定位置1函数 setb
格式:setb(data, start, length)
功能:对整型值data,从低位的start位开始(位数从0开始计),其后连续的length位全部置1,返回修改后的data值。
例子:%x setb(0x0, 8, 16) = 0x00ffff00
(4)指定位清0函数 rstb
格式:rstb(data, start, length)
功能:对整型值data,从低位的start位开始(位数从0开始计),其后连续的length位全部置0,返回修改后的data值。
例子:%x rstb(0xffffffff, 8, 16) = 0xff0000ff
(5)指定位反转函数 rvsb
格式:rvsb(data, start, length)
功能:对整型值data,从低位的start位开始(位数从0开始计),其后连续的length位全部反转,返回修改后的data值。
例子:%x rvsb(0x0, 8, 16) = 0x00ffff00
七 逻辑运算
支持6种关系运算,和3种逻辑运算,以及C/C++条件运算。
当逻辑结果为真时,结果为整型值1;当逻辑结果为假时,结果为整型值0。
1-关系运算
(1)大于 &
1+2 & 3+4 = (1+2) & (3+4) = 0
(2)大于等于 &=
3.14*2 &= 6.28 = 1
(3)小于 &
1+2 & 3+4 = (1+2) & (3+4) = 1
(4)小于等于 &=
3.14*2 &= 6.28 = 1
(5)等于 ==
3.14*2 == 6.28 = 1
(6)不等于 !=
3.14*2 != 6.28 = 0
2-逻辑运算
(1)逻辑与 &&
1&2 && 3&5 = (1&2) && (3&5) = 1
1&2 && 3&3 = 0
(2)逻辑或 ||
1&2 || 3&3 = 0
1&2 || 3&=3 = 1
(3)逻辑非 !
!(-3.14) = 0
3-条件运算 ? :
格式:表达式1 ? 表达式2 : 表达式3
结果:当表达式1为真时,整个表达式的结果等于表达式2,否则结果等于表达式3。
例子:1+2&3+4 ? 1+2 : 3+4 = 7
sqr(1+2&3+4 ? 1+2 : 3+4) = sqr(1+2) = 1.73205
4-逻辑结果值
逻辑结果值(0或1)又可作为整数参与其它运算。
(-3&5) + 2 = 1 + 2 = 3
1&2&3 = (1&2)&3 = 0&3 = 1
八 几何运算
1-角度与弧度转换
(1)角度转换为弧度 rtd
rtd180 = pi = 3.14159
rtd90 = pi/2 = 1.5708
(2)弧度转换为角度 dtr
dtr pi = 180
dtr(pi/2) = 90
2-三角计算
(1)正弦 sin
sin(pi/2) = sin(rtd90) = 1
(2)余弦 cos
cos pi = -1
(3)正切 tan
tan(rtd45) = 1
(4)余切 ctan
ctan(rtd45) = 1
3-反三角计算
(1)反正弦 asin
asin1 = pi/2 = 1.5708
(2)反余弦 acos
(3)反正切 atan
atan1 = rtd45 = 0.785398
4-双曲三角计算
(1)双曲正弦 sinh
sinh1 = 1.1752
(2)双曲余弦 cosh
cosh1 = 1.54308
(3)双曲正切 tanh
tanh1 = 0.761594
九 统计运算
1-求和函数 sum
求多个参数之和,参数个数1到无穷多。
sum(65, 78, 84.5, 96) = 323.5
2-求平均值函数 ave
求多个参数的平均值,参数个数1到无穷多。
ave(65, 78, 84.5, 96) = 80.875
3-取大者函数 max
从多个参数中找出最大值,参数个数1到无穷多。
max(1, 2, 3, 4) = 4
max(3.14 * 2, -3.14 * -3) = 9.42
4-取小者函数 min
从多个参数中找出最小值,参数个数1到无穷多。
min(1, 2, 3, 4) = 1
min(3.14 * 2, -3.14 * -3) = 6.28
十 单位转换运算
1-长度转换
(1)英寸转厘米 intcm
intcm 60 = 152.4 (60寸电视机对角线的长度)
(2)厘米转英寸 cmtin
cmtin 200 = 78.7402 (2米等于多少英寸)
(3)海里转公里 nmtkm
nmtkm 12 = 22.224 (领海是多少公里)
(4)公里转海里 kmtnm
kmtnm 5000 = 2699.78 (5000公里是多少海里)
2-重量转换
(1)磅转千克 lbtkg
lbtkg 1 = 0.453592 (1磅是多少千克)
(2)千克转磅 kgtlb
kgtlb 1 = 2.20462 (1千克是多少磅)
3-温度转换
(1)华氏度转摄氏度 ftc
ftc 32 = 0 (32华氏等于冰点/0摄氏度)
(2)摄氏度转华氏度 ctf
ctf 37.7777777 = 100 (人体温度约100华氏度)
(3)开氏度转摄氏度 ktc
ktc 0 = -273.15 (0开氏度等于多少摄氏度)
(4)摄氏度转开氏度 ctk
ctk 0 = 273.15 (0摄氏度等于多少开氏度)
十一 变量与常量
1-变量的定义与引用
可以将一个表达式的结果存储在变量中,方便以后使用。
格式为: 变量名 = 表达式
其中,变量名为一合法标识符,不区分大小写,但不能与运算符或内置常量同名。
标识符的定义为:以字母或下划线开头,后跟若干字母、数字、或下划线的序列。
表达式可以是任何支持的表达式,包括算术运算、位运算、逻辑运算、函数调用等表达式。
rate = 6.1271 (设定美元汇率)
rmb = 2000 * rate (计算2000美元兑多少人民币,此时rmb = 12254.2)
dollar = 100 / rate (计算100人民币兑多少美元,此时dollar = 16.3209)
mymax = pi&e ? pi : e (得到常量pi和e中的大者)
myave = ave(65, 78, 84.5, 96) (求几个数的平均值,myave = 80.875)
对已定义的变量可以再次赋值,这时原值丢失,保存新值。
引用未定义的变量时会报错。
2-赋值表达式
赋值运算本又是个表达式,即赋值表达式。
整个赋值表达式的值,为=号右部表达式的值,例如
a = (b = 5) (此时变量a和b的值都等于5)
采用此法可以一次性定义多个变量。
3-内置的常量
以下内置常量可以直接使用,常量名不区分大小写。
不能对常量重新赋值,否则会报错。
(自然对数的底)
gold = 0. (黄金分割比率)
inch = 2.54
(1英寸等于几厘米)
kv = 273.15
(开氏温度 = 摄氏温度 + 273.15)
nmi = 1.852
(1海里等于几公里)
(圆周率)
十二 运算符的优先级
1-优先级顺序
运算符按优先级划分为如下14组,各个组的优先级由高到低,同一组内的优先级相同。
不清楚优先级时,请用使用括号。
!(逻辑非)
~(位取反)
%(百分比)
%%(万分比)
K M G T P E(存储单位后缀)
w y wy yy wyy yyy kilo mil bil tril(数量后缀)
id(arg1, arg2, ...)(函数调用)
mod(求余)
**(幂运算)
& (按位与)
^ (按位异或)
(10) | (按位或)
(11) && (逻辑与)
(12) || (逻辑或)
(13) ?: (条件运算)
:=:? (等比运算)
(14) = (赋值运算)
2-用括号指定运算顺序
1 + 2 * 3 = 1 + (2 * 3) = 7
(1 + 2) * 3 = 9
1 * (2 + 3) = 5
huyansoft...展开收缩
综合评分:4.5(17位用户评分)
所需积分/C币:
下载个数:373
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有9条
再也不用windows自带的计算器了
如果再多个win7计算器对二进制输入的方法就好了。
表示真的很强大!!!
挺好的资源
好东西,确实不错。
很强大,不很好用,还是WIN8自带的程序员计算器好
需要一段时间的适应 还是可以的
huyansoft回复amtgs68
呵呵,习惯后比按钮式计算器方便,尤其是算16进制的时候
很强大,但是不是我想要的
感觉不太会用
huyansoft回复lephone2002
学过C语言就会觉得很好用。我写了这个软件后,再也不用windows自带的计算器了。
审核通过送C币
计算机算法数学基础
创建者:lijunhu
计算机算法
创建者:lijunhu
创建者:lijunhu
上传者其他资源上传者专辑
疯狂HTML5_CSS3_JavaScript讲义_原书光盘
思科VPN客户端 AnyConnect ICS+ for Android版本
万能makefile写法详解,一步一步写一个实用的makefile
一个Lex/Yacc完整的示例(可使用C++)
Doctors1.0.1
开发技术热门标签
VIP会员动态
下载频道积分规则调整V1710.18
CSDN下载频道积分调整公告V1710.17
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
为了良好体验,不建议使用迅雷下载
程序员二进制计算器 v1.36
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:786
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
全站1200个资源免积分下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
程序员二进制计算器 v1.36君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
计算器设计与实现实验报告
下载积分:30
内容提示:计算器设计与实现实验报告
文档格式:PDF|
浏览次数:263|
上传日期: 09:00:04|
文档星级:
全文阅读已结束,如果下载本文需要使用
 30 积分
下载此文档
该用户还上传了这些文档
计算器设计与实现实验报告
关注微信公众号二进制的三种编码:原码,反码,补码
以前不是很理解,最近有时间进行了补充学习,通过两篇渐进关系的文章让我清晰了很多:
一. 机器数和真值
在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.
一个数在计算机中的二进制表示形式,& 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.
比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是。如果是 -3 ,就是
那么,这里的
就是机器数。
2、真值
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 ,其最高位1代表负,其真正数值是 -3 而不是形式&#(转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:的真值 = +000 0001 = +1,的真值 = –000 0001 = –1
二. 原码, 反码, 补码的基础概念和计算方法.
在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 =
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[-127 , 127]
原码是人脑最容易理解和计算的表示方式.
反码的表示方法是:
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = []原 = []反
[-1] = []原 = []反
可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = []原 = []反 = []补
[-1] = []原 = []反 = []补
对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.
三. 为何要使用原码, 反码和补码
在开始深入学习前, 我的学习建议是先&死记硬背&上面的原码, 反码和补码的表示方式以及计算方法.
现在我们知道了计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:
[+1] = []原 = []反 = []补
所以不需要过多解释. 但是对于负数:
[-1] = []原 = []反 = []补
可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?
首先, 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别&符号位&显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
于是人们开始探索 将符号位参与运算, 并且只保留加法的方法. 首先来看原码:
计算十进制的表达式: 1-1=0
1 - 1 = 1 + (-1) = []原 + []原 = []原 = -2
如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.
为了解决原码做减法的问题, 出现了反码:
计算十进制的表达式: 1-1=0
1 - 1 = 1 + (-1) = []原 + []原= []反 + []反 = []反 = []原 = -0
发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在&0&这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[]原和[]原两个编码表示0.
于是补码的出现, 解决了0的符号以及两个编码的问题:
1-1 = 1 + (-1) = []原 + []原 = []补 + []补 = []补=[]原
这样0用[]表示, 而以前出现问题的-0则不存在了.而且可以用[]表示-128:
(-1) + (-127) = []原 + []原 = []补 + []补 = []补
-1-127的结果应该是-128, 在用补码运算的结果中, []补 就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[]补算出来的原码是[]原, 这是不正确的)
使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].
因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-231, 231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.
四 原码, 反码, 补码 再深入
计算机巧妙地把符号位参与运算, 并且将减法变成了加法, 背后蕴含了怎样的数学原理呢?
将钟表想象成是一个1位的12进制数. 如果当前时间是6点, 我希望将时间设置成4点, 需要怎么做呢?我们可以:
1. 往回拨2个小时: 6 - 2 = 4
2. 往前拨10个小时: (6 + 10) mod 12 = 4
3. 往前拨10+12=22个小时: (6+22) mod 12 =4
2,3方法中的mod是指取模操作, 16 mod 12 =4 即用16除以12后的余数是4.
所以钟表往回拨(减法)的结果可以用往前拨(加法)替代!
现在的焦点就落在了如何用一个正数, 来替代一个负数. 上面的例子我们能感觉出来一些端倪, 发现一些规律. 但是数学是严谨的. 不能靠感觉.
首先介绍一个数学中相关的概念: 同余
同余的概念
两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余
记作 a ≡ b (mod m)
读作 a 与 b 关于模 m 同余。
4 mod 12 = 4
16 mod 12 = 4
28 mod 12 = 4
所以4, 16, 28关于模 12 同余.
正数进行mod运算是很简单的. 但是负数呢?
下面是关于mod运算的数学定义:
上面是截图, &取下界&符号找不到如何输入(word中粘贴过来后乱码). 下面是使用&L&和&J&替换上图的&取下界&符号:
x mod y = x - y L x / y J
上面公式的意思是:
x mod y等于 x 减去 y 乘上 x与y的商的下界.
以 -3 mod 2 举例:
= -3 - 2xL -3/2 J
= -3 - 2xL-1.5J
= -3 - 2x(-2)
= -3 + 4 = 1
(-2) mod 12 = 12-2=10
(-4) mod 12 = 12-4 = 8
(-5) mod 12 = 12 - 5 = 7
再回到时钟的问题上:
回拨2小时 = 前拨10小时
回拨4小时 = 前拨8小时
回拨5小时= 前拨7小时
注意, 这里发现的规律!
结合上面学到的同余的概念.实际上:
(-2) mod 12 = 10
10 mod 12 = 10
-2与10是同余的.
(-4) mod 12 = 8
8 mod 12 = 8
-4与8是同余的.
距离成功越来越近了. 要实现用正数替代负数, 只需要运用同余数的两个定理:
a ≡ a (mod m)
这个定理是很显而易见的.
线性运算定理:
如果a ≡ b (mod m),c ≡ d (mod m) 那么:
(1)a ± c ≡ b ± d (mod m)
(2)a * c ≡ b * d (mod m)
如果想看这个定理的证明, 请看:
7 ≡ 7 (mod 12)
(-2) ≡ 10 (mod 12)
7 -2 ≡ 7 + 10 (mod 12)
现在我们为一个负数, 找到了它的正数同余数. 但是并不是7-2 = 7+10, 而是 7 -2 ≡ 7 + 10 (mod 12) , 即计算结果的余数相等.
接下来回到二进制的问题上, 看一下: 2-1=1的问题.
2-1=2+(-1) = []原 + []原= []反 + []反
先到这一步, -1的反码表示是. 如果这里将[]认为是原码, 则[]原 = -126, 这里将符号位除去, 即认为是126.
发现有如下规律:
(-1) mod 127 = 126
126 mod 127 = 126
(-1) ≡ 126 (mod 127)
2-1 ≡ 2+126 (mod 127)
2-1 与 2+126的余数结果是相同的! 而这个余数, 正式我们的期望的计算结果: 2-1=1
所以说一个数的反码, 实际上是这个数对于一个膜的同余数. 而这个膜并不是我们的二进制, 而是所能表示的最大值! 这就和钟表一样, 转了一圈后总能找到在可表示范围内的一个正确的数值!
而2+126很显然相当于钟表转过了一轮, 而因为符号位是参与计算的, 正好和溢出的最高位形成正确的运算结果.
既然反码可以将减法变成加法, 那么现在计算机使用的补码呢? 为什么在反码的基础上加1, 还能得到正确的结果?
2-1=2+(-1) = []原 + []原 = []补 + []补
如果把[]当成原码, 去除符号位, 则:
[]原 = 127
其实, 在反码的基础上+1, 只是相当于增加了膜的值:
(-1) mod 128 = 127
127 mod 128 = 127
2-1 ≡ 2+127 (mod 128)
此时, 表盘相当于每128个刻度转一轮. 所以用补码表示的运算结果最小值和最大值应该是[-128, 128].
但是由于0的特殊情况, 没有办法表示128, 所以补码的取值范围是[-128, 127]
本人一直不善于数学, 所以如果文中有不对的地方请大家多多包含, 多多指点!
第二篇(基于第一篇):
Java整型数据类型有:byte、char、short、int、long。要把它们转换成二进制的原码形式,必须明白他们各占几个字节。,一个字节==8位数
&数据类型&&&&&&&&&&&&&&&&&&&&&&&&&& 所占位数
&&&&& byte&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 8&
&&&&& boolean&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8
&&&&& short&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 16
&&&&& int&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 32&
&&&&& long&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 64&
&&&&& float&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&32&
&&&&& double&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 64&
&&&&& char&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 16
正数最大位,也就是数字127&
负数最大为,也就是数字-128
反码与补码
& && &&&一个数如果是正,则它的反码与原码相同;
& && &&&一个数如果是负,则符号位为1,其余各位是对原码取反;
2、补码:利用溢出,我们可以将减法变成加法
& && & 对于十进制数,从9得到5可用减法:
& && & 9-4=5& & 因为4+6=10,我们可以将6作为4的补数
& && & 改写为加法:
& && & 9+6=15(去掉高位1,也就是减10)得到5.
& && & 对于十六进制数,从c到5可用减法:
& && & c-7=5& & 因为7+9=16 将9作为7的补数
& && & 改写为加法:
& && & c+9=15(去掉高位1,也就是减16)得到5.
& & 在计算机中,如果我们用1个字节表示一个数,一个字节有8位,超过8位就进1,在内存中情况为(),进位1被丢弃。
& & ⑴一个数为正,则它的原码、反码、补码相同
& & ⑵一个数为负,刚符号位为1,其余各位是对原码取反,然后整个数加1
&&&&&详细请参考/zhangziqiu/archive//ComputerCode.html
Integer.toHexString的参数是int,如果不进行&0xff,那么当一个byte会转换成int时,由于int是32位,而byte只有8位这时会进行补位,
例如补码的十进制数为-1转换为int时变为好多1啊,即0xffffffff但是这个数是不对的,这种补位就会造成误差。
和0xff相与后,高24比特就会被清0了,结果就对了。
还需要明白一点的是:计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负
在计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
补码与原码的转换过程几乎是相同的。
数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
&&&&& 例如,+9的补码是。
(2)负数的补码:符号位(最高位)为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
&&&&& 例如,-7的补码:因为是负数,则符号位为“1”,整个为;其余7位为-7的绝对值+7的原码
&&&& 0000111按位取反为1111000;再加1,所以-7的补码是。
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
&&&& 例如,已知一个补码为,则原码是(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是。
源码:是什么就是什么。负数就是最前面符号位为1。
反码:正的就是补码,负的就是各位取反,0换1,1换0,注意,最高位符号为不变。
补码:正的就是源码,负的就是反码+1
比如: -1 -2
以8位二进制为例
源码:00010
反码:11101
补码:11110
补码这样做的好处是什么呢?
请看-1+(-2)电脑怎么做:
用源码: + ()= 这是什么?是-3吗?不是,是3。所以不能直接用源码做加法。
用反码: + ()= 这是什么?是反码的&-4&
用补码: + ()= 末尾减一再取反得,所以结果是补码的-3。
反码为什么出错?以4位数为例,高位为符号位(括号内为绝对值):
1010 (2)取反 1101 (5)
1011 (3)取反 1100 (4)
然后 -2 + (-3) 变成了 -(5 + 4)超出8的部分舍去,得 1001,再取反得 1110,成了-6
究其原因:各位取反的两数相加:1=1111必是全1即绝对值为7,2-&5,3-&4,相对于8共偏差了2,然后9=1mod8,1-&6,只修正了1点偏差,
结果就出现了1的偏差。补码中末尾加一就是修正了该偏差,得到正确的结果。即2-&6,3-&5.相对于8无偏差11=3mod8,3-&5。
位运算符:
位移进制运算
带符号右移 题:-15 && 2 = -4
15原码:   00
//32位,二进制
反码:    11
//0变1,1变0
补码:    11
//最后位加1,-15二进制
右移2位:  11
//右边丢弃2位,前面30位保留,左边补1
取反:&&&&& 00
//0变1,1变0
+1:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 3+1
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& =-4 //负号保留,十进制
带符号左移 题: 10 && 2 = 40
10 补码:&&& 00
//32位,二进制
左移2位:&&& 00
//左边丢弃2位,右边补0
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&40 //十进制
无符号右移 题:-4321 &&& 30 = 3
4321原码:  &&&&&& 0
//32位,二进制
反码:   &&&&&&& 11
//0变1,1变0
补码:   &&&&&&& 11
//最后位加1,-4321二进制
无符号右移30位:  00
//右边丢弃30位,前面二位保留,左边补0
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 3 //十进制
& 位逻辑与 题:44 & 21 = 4
44 补码:&&& 00
//32位,二进制
21 补码:&&& 00
//32位,二进制
& 运算:&&&& 00
//对应的两个二进制位均为1时 结果位才为1 否则为0
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 4 //十进制&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
| 位逻辑与 题:9 | 5 = 13
9 补码:&&& 00
//32位,二进制
5 补码:&&& 00
//32位,二进制
| 运算:&&& 00
//对应的二个二进制位有一个为1时,结果位就为1
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 13 //十进制
^ 位逻辑异或 题: 9 ^ 5 = 12
9 补码:&&& 00
//32位,二进制
5 补码:&&& 00
//32位,二进制
| 运算:&&& 00
//对应的二进制位相异时,结果为1
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 12 //十进制
~ 位逻辑反 题: ~9 = -10
9 补码:&&& 00
//32位,二进制
~ 运算:&&& 11
//最高位为1表示为一个负数,则进行取反加1
取反:&&&&& 00
//32位,二进制
+1:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 9+1 //32位,二进制
结果:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -10 //十进制
由于数据类型所占字节是有限的,而位移的大小却可以任意大小,所以可能存在位移后超过了该数据类型的表示范围,于是有了这样的规定: 如果为int数据类型,且位移位数大于32位,则首先把位移位数对32取模,不然位移超过总位数没意义的。所以4&&32与4&&0是等价的。
如果为long类型,且位移位数大于64位,则首先把位移位数对64取模,若没超过64位则不用对位数取模。
如果为byte、char、short,则会首先将他们扩充到32位,然后的规则就按照int类型来处理。
实际应用:
1.& 判断int型变量a是奇数还是偶数&&&&
&&&& a&1& = 0 偶数&
&&&&&a&1 =& 1 奇数&
2.& 求平均值,比如有两个int类型变量x、y,首先要求x+y的和,再除以2,但是有可能x+y的结果会超过int的最大表示范围,所以位运算就派上用场啦。
&&&&& (x&y)+((x^y)&&1);&
3.& 对于一个大于0的整数,判断它是不是2的几次方
&&& ((x&(x-1))==0)&&(x!=0);&
4.&&比如有两个int类型变量x、y,要求两者数字交换,位运算的实现方法:性能绝对高效
5. 求绝对值
&&& int abs( int x )&
&&&& y = x && 31 ;&
&&& return (x^y)-&&&&&&& //or: (x+y)^y&
6.&&取模运算,采用位运算实现:
&&&& a % (2^n) 等价于 a & (2^n - 1)&
7.& 乘法运算&& 采用位运算实现
&&&& a * (2^n) 等价于 a&&& n
8.&&&除法运算转化成位运算
&&&&&&a / (2^n) 等价于 a&& n&
9.&& 求相反数
&&&&& (~x+1)&
10& a % 2 等价于 a & 1
本文已收录于以下专栏:
相关文章推荐
无论在是在编辑文本文件的时候,还是在制作网页的时候,总会遇到文本编码方式的问题。如果处理不当,就会出现乱码的问题。因此,有必要对文本的编码方式做一个详尽的了解。
常见的一些字符编码方式无非有:Unic...
先复习一下十进制和二进制转换的知识点,以及小端大端的知识点:
十进制数与二进制数的转换
http://course./21cn/%E7%94%B5%E5%AD%90%E...
计算机编码方式介绍
使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文...
在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256种状态,这就称为一个字节(byte)。也就是说,一个字节可以表示25...
最近因为项目需要从网络上获取文本数据并解析,然而获取的文本文件的编码格式未知,所以解析比较麻烦。为此,我专门研究了一下中文编码,看了网络上的许多文章,现在对计算机中的信息编码理解逐渐清晰。下面,我就网...
在计算机中,所有数据存储和运算都要用到二进制。例如,像a、b、c这样的字母,另外还有数学,以及一些常用的符号,等等。。。都要将他们以二进制的方式去存储,不同的人有不同的存储方式,这样大家相互通信就会发...
世界上有两种人,懂和不懂二进制的。最近发现自己之前算是不懂的。一、整数表示      假设整数数据类型是W位,则写成二进制位x→是[Xw-1,xw-2,……x0]。1.    无符号整数对于无符号整数...
RLE 又叫 Run Length Encoding ,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的...
一.整数的表示
由于计算机只能识别二进制的0和1,在存储数据时就涉及到了对数据的编码问题,计算机中对整数的编码有两种不同的方式,分别为:
1. 只能表示非负数,此种类型数据称为无符号类型 即 unsi...
所谓计算机编码,就是将通用的语言转换为能在计算机交流的语言。
1. 汉字编码
汉字编码分两种,国标码,机内码。
 (1)国标码,即GB2312-80在国标码的字符集中,收集了一级汉字3755个,...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 计算机二进制算法 的文章

 

随机推荐