快速提问:由于int是2个字节而char是1个字节,我想在2个char变量中存储一个int变量。 (比如第1 - 8位进入第一个char,第9-16位进入第二个char)。使用C作为编程语言。
我怎样才能实现这一目标?会是这样的:
var sheet = SpreadsheetApp.getActiveSheet();
var wks = sheet.getSheetByName('Test');
做这个工作?
我无法确定是否将int转换为char只会丢弃9-16位。
答案 0 :(得分:4)
这是从c11草案n1570中提取的
6.5.4投注运营商
- 如果表达式的值以比所需更大的范围或精度表示 按照强制转换(6.3.1.8)命名的类型,然后强制转换指定转换即使 表达式的类型与命名类型相同,并删除任何额外的范围和 精度。
醇>
所以演员阵容确实会删除额外的位,但无论如何都不需要它,因为该值将隐式转换为char
,无论如何都会适用。
答案 1 :(得分:0)
你必须这样做:
char c1 = (char) ((i << 8) >> 8);
char c2 = (char) (i >> 8);