大家好,欢迎来到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

