将int存储在2个字符中

时间:2015-05-16 13:25:53

标签: c casting char int

快速提问:由于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位。

2 个答案:

答案 0 :(得分:4)

这是从c11草案n1570中提取的

  

6.5.4投注运营商

     
      
  1. 如果表达式的值以比所需更大的范围或精度表示   按照强制转换(6.3.1.8)命名的类型,然后强制转换指定转换即使   表达式的类型与命名类型相同,并删除任何额外的范围和   精度。
  2.   

所以演员阵容确实会删除额外的位,但无论如何都不需要它,因为该值将隐式转换为char,无论如何都会适用。

答案 1 :(得分:0)

你必须这样做:

char c1 = (char) ((i << 8) >> 8);

char c2 = (char) (i >> 8);