找回密码
 点一下
查看: 1649|回复: 13

Jass以下的东东指的是什么?

[复制链接]
发表于 2008-7-25 01:07:05 | 显示全部楼层 |阅读模式
以下的这些是指什么?整数型(4byte)?十进制,8进制指什么?
integer : 32位有符号整数型(4byte) 取值范围:[-2147483648, 2147483647] (2^31+符号位)

real : 实数型(单精度浮点型,4byte) 取值范围:[1.5*10^(-45), 3.4*10^38]
set i=65//十进制
set i=0101//8进制
set i=0x41//16进制,以0x或0X开头(10进制65)
set i='A005'//asc字符,写在单引号“"”之中,由4个字符组成,这个值是1,093,677,109


jass:  Copy code
function *** takes integer i, integer j returns ***
local integer a = i + 1
set j = j + a
....
endfunction

上面的set j = j + a  的 j 一定要是全局变量吗?改为local integer j = j + a   行吗?
发表于 2008-7-25 01:24:04 | 显示全部楼层
不知道lz有没有其他程序语言的基础

计算机基础知识
整数型变量就是整数,占据4Bytes空间,以32位2进制形式表示
带符号的整数(signed integer)表示中第一位为符号位,0为正,1为负
signed integer的表式范围为-2^31~(2^31-1),即-2147483648~2147483647

接下来是一些数学常识问题
10进制就是逢10进位,就是我们通常使用的计数方式,无须前缀
8进制就是逢8进位,可用数字为0-7,程序语言中以0位前缀,例如036=30,0324=212
16进制就是逢16进位,由于阿拉伯数字只有10个,多出来的6个就用abcdef表示,分别为10-15,前缀为0x,例如0xa=10,0x32c=812
另外还有2进制,只有0和1两个数字
ascii是通过ascii码表的一种计数方式,为256进制,war3中大量使用的就是这种,单位、技能、物品、可破坏物、魔法效果、科技的id都用这种方法表示

上面那个代码中j本来就是局部变量,后面的表达方法不可用………………

我的表达能力不怎么样,专业课也学得不怎么样,于是只好按自己的理解来回答这些问题了
回复

使用道具 举报

 楼主| 发表于 2008-7-25 02:35:49 | 显示全部楼层
我什么也不懂的,刚刚上手,看J教程看到了  10进制—XXX  的那些东东,实在不清楚所以问了, 看了1楼的东东还是看不明白啊.我晕,
  原来我真的是负数智商[s:202]
回复

使用道具 举报

发表于 2008-7-25 06:18:13 | 显示全部楼层
引用楼主mnbvcxzqwe于2008-07-25 01:07发表的 Jass以下的东东指的是什么? :
上面的set j = j + a  的 j 一定要是全局变量吗?改为local integer j = j + a   行吗?.......

set j=j+a 和local integer j = j + a   没什么区别的说,一个是为已有变量赋值,另外一个是创建一个变量并赋值
回复

使用道具 举报

发表于 2008-7-25 08:28:48 | 显示全部楼层
引用第3楼staycool于2008-07-25 06:18发表的  :

set j=j+a 和local integer j = j + a   没什么区别的说,一个是为已有变量赋值,另外一个是创建一个变量并赋值

真没区别么?看清楚了,j 是函数的一个参数,重复声明会怎么样呢?
回复

使用道具 举报

发表于 2008-7-25 08:38:37 | 显示全部楼层
好吧 我错了
回复

使用道具 举报

 楼主| 发表于 2008-7-25 13:04:46 | 显示全部楼层
楼上的意思是这样吗?
set j=j+a 
//是为已有变量赋值
local integer j = 100
//创建一个变量并赋值,声明这个J=100.
//如果出现local integer j=j+a的情况是不行的.
//意思是function *** takes integer i, integer j returns *** 与此处相关local integer j=100吗?
楼上1楼的解释,我还是看不懂啊,有没一些令人很好理解的说法啊.
回复

使用道具 举报

发表于 2008-7-25 13:11:24 | 显示全部楼层
set j = j + a是可行的,因为变量j已经被初始化,可以使用

local integer j = 100页是可行的,因为这时对整数变量j的声明及初始化

local integer j = j + a是不可以的,他的计算顺序是先计算j+a,然后赋值到j,因为之前j没有被声明及初始化,所以是不可行的

//意思是function *** takes integer i, integer j returns *** 与此处相关local integer j=100吗?
这里的两个j完全无关,一个是函数的参数,另一个是函数里的局部变量………………
回复

使用道具 举报

 楼主| 发表于 2008-7-25 21:03:17 | 显示全部楼层
了解,可是1楼的东东,猪头大人认为新人有必要去理解么?(我还是看不懂)
回复

使用道具 举报

发表于 2008-7-25 21:04:48 | 显示全部楼层
这个属于基本知识吧,与WE无关,是一些关于计算机与数学方面的内容

话说你的问题的前一半不就是关于这个的么………………
回复

使用道具 举报

 楼主| 发表于 2008-7-25 21:13:22 | 显示全部楼层
计算机基础知识
整数型变量就是整数,占据4Bytes空间,以32位2进制形式表示
带符号的整数(signed integer)表示中第一位为符号位,0为正,1为负
signed integer的表式范围为-2^31~(2^31-1),即-2147483648~2147483647

接下来是一些数学常识问题
10进制就是逢10进位,就是我们通常使用的计数方式,无须前缀
8进制就是逢8进位,可用数字为0-7,程序语言中以0位前缀,例如036=30,0324=212
16进制就是逢16进位,由于阿拉伯数字只有10个,多出来的6个就用abcdef表示,分别为10-15,前缀为0x,例如0xa=10,0x32c=812
另外还有2进制,只有0和1两个数字
ascii是通过ascii码表的一种
计数方式,为256进制,war3中大量使用的就是这种,单位、技能、物品、可破坏物、魔法效果、科技的id都用这种方法表示


上面的 -2^31~(2^31-1),即-2147483648~2147483647 那么长的数字?干嘛的?如果你说这不是WE上的,教程里干嘛说这个吖?上面提到的(前缀)是杂意思?前缀为0x?
例如:0xa=10,0x32c=812这段话,ABCDEF等于什么呦?0xa=10??为什么等于10?
回复

使用道具 举报

发表于 2008-7-25 21:16:31 | 显示全部楼层
引用第10楼mnbvcxzqwe于2008-07-25 21:13发表的  :
计算机基础知识
整数型变量就是整数,占据4Bytes空间,以32位2进制形式表示
带符号的整数(signed integer)表示中第一位为符号位,0为正,1为负
signed integer的表式范围为-2^31~(2^31-1),即-2147483648~2147483647
.......

问题被无限复杂化了,一般来说,WE里面用不上2/8/16进制的数,所以你可以无视这些进制
回复

使用道具 举报

发表于 2008-7-25 21:22:02 | 显示全部楼层
^是指数运算的一种表示方式,因为懒得打上下标
2^31就是2的31次方,无论是jass还是其他的一些编程语言,整数的取值范围一般都是这个

我已经说得很清楚了,16进制就是逢16进1,由于只有10个数字,所以用abcdef来补全,a=10,b=11,c=12,d=13,e=14,f=15,这是数学常识好不好………………
貌似关于进制的内容我在小学的数学课上就学过了,lz不会一点都不知道吧………………
一般编程语言为了便于的表示8进制和16进制,并且与10进制数做出区分,所以用到了前缀,0开头的表示8进制,0x开头的表示16进制

我说过我的表达能力不好,还不明白baidu去吧………………
回复

使用道具 举报

 楼主| 发表于 2008-7-25 21:30:28 | 显示全部楼层
   那么就关帖子的咯.感谢. 小学都有学这些了?我晕,刚才问了同级同学,他也说不知道.不说了,关帖.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 16:28 , Processed in 0.039678 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表