原码,反码,补码 及 移位运算

原码,反码,补码 及 移位运算在计算机中都是按字节来储存了 1 个字节等于 8 位 1Byte 8bit 而计算机只能识别 0 和 1 这两个数 所以我们编写的程序最后都要转换成二进制

大家好,欢迎来到IT知识分享网。

 在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以我们编写的程序最后都要转换成二进制。

1个字节8位(1Byte=8bit),一个字节为用8个0或1来表示(每个便是1bit)如:0110  0011

(大家都知道,开始的时候电脑是由老外搞出来的,那个时候不支持中文,后来加入中文编码,和其他语言的编码规则,所以造成编码后字节不同)在JAVA中,一个char是2个字节(byte),一个中文汉字是一个字符,2个字节(byte),而英文字母和数字字符是一个字节(byte)。所以char类型的内容有的时候是1个字节,有的时候是2个字节。int是4个字节,long是8个字节。

二进制整数分:无符号整数和有符号整数

无符号整数,如:

原码,反码,补码 及 移位运算

有符号整数,如:

原码,反码,补码 及 移位运算

有无符号的辨别:

存储的数字不区分有无符号,关键在于你要怎么去解析使用它。如果作为无符号,就是255,如果看成有符号就是-1。由人为的协议规定,在高级语言中由变量的类型来标识出。如果看成“有符号”整型,标志位是区分的标志。

原码,反码,补码:

无符号整数是没有原码反码补码概念的,只有当给定的值以有符号来使用时才有这一概念。

正数原码为十进制数的二进制值。

正数原码,反码,补码相同

负数原码为十进制数的二进制值,再在首位(符号位设置值为1)。

负数反码为原码除了符号位值不变其他为取反。

负数补码为负数反码加1。

如:

有符号的整数    原码    反码    补码

65                                  0100 0001      0100 0001     0100 0001

-65                                 1100 0001      1011 1110     1011 1111

在计算机中数值是以补码的形式存储的,可以理解为正数是以原码形式存储的,负数是以补码的形式存储的。

如:

65  计算机中存储(原码) 0100 0001        及十进制65  –>二进制值为:0100 0001

15 计算机中存储(原码)   0000 1111        及十进制15  –>二进制值为:0000 1111

-15 计算机中存储(补码) 1111 0010       及十进制-15  –>二进制值为:1000 1110

 

移位运算

参考:

http://www.cnitblog.com/mantou/archive/2011/11/20/1239.html

http://eneasy.iteye.com/blog/

http://zhidao.baidu.com/question/294860268.html

http://wenku.baidu.com/view/a3b6234ac850ad02de804112.html

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/107039.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信