社区
数据结构与算法
帖子详情
请教:int型变量强制转化成byte型,系统是怎样进行运算的?
FishCrazy
2003-04-14 10:58:59
例如:
int n = 300;
byte b = (byte)n;
b = ?
系统给出的结果是: b=44
...全文
145
4
打赏
收藏
请教:int型变量强制转化成byte型,系统是怎样进行运算的?
例如: int n = 300; byte b = (byte)n; b = ? 系统给出的结果是: b=44
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
寻开心
2003-04-14
打赏
举报
回复
按照你提供的转换方式,转换结果是系统处理的,都是取模操作,滤过高位保留低位。
如果例子当中的n是float类型,它也可以被转换,结果也会是44。
但是如果使用下面的转换方式
b = * ((BYTE*)&n)
对于整数类型的n同样可以得到 b = 44,如果对于float类型,则很难说得到的是什么了。
因为转换的方式就不同了。这个时候,使用的转换机制对于X86体系,数字存储的时候,低位在前,高位在后。强制转换的时候,只是把存储空间当中第一个BYTE当中的数据当作目标数据来使用。
hitcoffee
2003-04-14
打赏
举报
回复
将整数当中的4个字节中取最低位!
300---〉100101100
取后8位00101100----〉44
Riemann
2003-04-14
打赏
举报
回复
可是将int型转化为BYTE型确实进行的是取低字节操作。
azuretttc
2003-04-14
打赏
举报
回复
INT是16位(VC中32位),BYTE8位,所以你将INT转成BYTE当然只能取最低的8位了,所以第9位上的1取不进来,所以是300-256=44
Java自学路上的一些实用代码.zip
纯正的代码实录:public class A { public static void main(String[] args) { //声明
byte
型
变量
my
byte
,并把
byte
型
变量
允许的最大值赋给my
byte
byte
my
byte
= 127;
int
my
int
= 150; float myfloat = 150; char mychar=10; double mydouble=45.46546; /*将
运算
结果输出*/ System.out.pr
int
ln("
byte
型
与float
型
数据
进行
运算
结果为:"+(my
byte
+myfloat)); System.out.pr
int
ln("
byte
型
与
int
型
数据
进行
运算
结果为:"+(my
byte
*my
int
)); System.out.pr
int
ln("
byte
型
与char
型
数据
进行
运算
结果为:"+(my
byte
/mychar)); System.out.pr
int
ln("double
型
与char
型
数据
进行
运算
结果为:"+(mydouble+mychar)); } }
02.Java基础语法
Java基础语法 类
型
转换 原因:开发中会存在不同类
型
的
变量
或者数据赋值给其他类
型
的
变量
,也存在不同类
型
的数据一起
运算
,其结果类
型
要确定下来 自动类
型
转换 原理:小范围类
型
的
变量
可以直接赋值给大范围类
型
的
变量
范围信息: 形式:
byte
a = 20;
int
b = a; 注意这种形式是可以的: char ch = 'a';
int
code = ch; 表达式的自动类
型
转换 含义:在表达式中,小范围类
型
的
变量
会自动提升成大范围
运算
。 结论:表达式的最终结果数据类
型
是由表达式在红的最高数据类
型
决定的,最高数据类
型
是什么,其结果数据的类
型
就是什么。 注意:
byte
short char 在表达式中,是直接提升成
int
运算
的 面试笔试题:
byte
b1 = 21;
byte
b2 = 22;
byte
b3 = b1 + b2 ; // 错误形式
int
b3 = b1 + b2 ;
byte
b3 = (
byte
) (b1 + b2);
byte
类
型
的
变量
做
运算
会转为
int
类
型
的值
public static void main(String args[]) {
byte
a = 3;
byte
b = 2; b = a + b; System.out.pr
int
ln(b); } 代码报错,b=a+b 右侧
运算
后变为
int
类
型
的值,而左侧为
byte
类
型
的
变量
,因此报错 public static void main(String args[]) {
byte
a = 3;
byte
b = 2; a+=b; System.out.pr
int
ln(b); } 代码可以通过,+=操作会
java中
int
与
byte
相互转换
基础内容简介 在做转换之前先要明确几个简单的概念。首先本文是以java为语言,以
int
为例子。 long数据类
型
在原理上是一致的。 1
int
在java中是32位,
byte
是8位。 2 原码,反码,补码简介 原码:就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值。 反码:在原码的基础上,...
c语言 将整
型
数赋给字节,C语言里:为什么不能将
int
型
变量
直接赋值给指向
int
型
变量
的指针...
C语言里:为什么不能将
int
型
变量
直接赋值给指向
int
型
变量
的指针以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!C语言里:为什么不能将
int
型
变量
直接赋值给指向
int
型
变量
的指针
int
a ;
int
*p;p=a; 不行 只能将地址给pp= &a; p指向ap = (
int
*)a ; 把a
强制
转换成地址给pC...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章