int数据类型是几位的?为什么负数通过计算器和通过代码转化为二进制的结果不同?
2016-03-22 17:57
330 查看
int数据是占4个字节,每个字节占8位,所以int类型是32位的。
例,int a = 123; 则得到~123是-124.
但123的二进制码是:1111011补全后是:00000000 00000000 00000000 01111011
~123可得:11111111 11111111 11111111 10000100
把这个放进计算器中,通过二进制转化为10进制得到的是4294967172,不是-124,这是为什么呢?
因为你的计算机是64位的!相当于你的数字默认类型是long型而非int !
64位的-124(即-124long)得到的二进制码是:1111111111111111111111111111111111111111111111111111111110000100
32位的-124(即-124int)得到的二进制码是:11111111 11111111 11111111 10000100
例,int a = 123; 则得到~123是-124.
但123的二进制码是:1111011补全后是:00000000 00000000 00000000 01111011
~123可得:11111111 11111111 11111111 10000100
把这个放进计算器中,通过二进制转化为10进制得到的是4294967172,不是-124,这是为什么呢?
因为你的计算机是64位的!相当于你的数字默认类型是long型而非int !
64位的-124(即-124long)得到的二进制码是:1111111111111111111111111111111111111111111111111111111110000100
32位的-124(即-124int)得到的二进制码是:11111111 11111111 11111111 10000100
相关文章推荐
- VB实现的16位和32位md5加密代码分享
- mysql binlog二进制日志详解
- 详解C++编程中对二进制文件的读写操作
- 整理C# 二进制,十进制,十六进制 互转
- VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
- c#二进制逆序方法详解
- JS幻想 读取二进制文件第1/2页
- 使用jscript实现二进制读写脚本代码
- C#二进制序列化实例分析
- JavaScript前端开发之实现二进制读写操作
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
- 32位操作系统认出超出4G内存的方法
- C#中实现在32位、64位系统下自动切换不同的SQLite dll文件
- javascript 二进制运算技巧解析
- 如何判断一个整数的二进制中有多少个1
- MSSQL 将截断字符串或二进制数据问题的解决方法
- 二进制中1的个数
- C++ 十进制转换为二进制的实例代码
- 基础篇--ip地址与子网掩码的认识
- mysql 5.7.12二进制安装